美文网首页
apply()与call()的区别

apply()与call()的区别

作者: 皮卡乒乓 | 来源:发表于2018-05-04 12:06 被阅读0次

JavaScript中的每一个Function对象都有一个apply()方法和一个call()方法,它们的共同之处:都“可以用来代替另一个对象调用一个方法,将一个函数的对象上下文从初始的上下文改变为由thisObj指定的新对象”。

  • (1)基本用法
function add(a,b){
  return a+b;  
}
function sub(a,b){
  return a-b;  
}
var a1 = add.apply(sub,[4,2]);  //sub调用add的方法
var a2 = sub.apply(add,[4,2]);
alert(a1);  //6     
alert(a2);  //2

/*call的用法*/
var a1 = add.call(sub,4,2);
  • (2)实现继承
function Animal(name){
  this.name = name;
  this.showName = function(){
        alert(this.name);    
    }    
}

function Cat(name){
  Animal.apply(this,[name]);    
}

var cat = new Cat("咕咕");
cat.showName();
  • (3)多重继承

相关文章

  • JavaScript 中 apply 、call 的详解

    apply 和 call 的区别 ECMAScript 规范给所有函数都定义了 call 与 apply 两个方法...

  • this_原型链_继承

    问题1: apply、call 、bind有什么作用,什么区别? apply和call call apply,调用...

  • 17_call和apply的区别是什么?caller和calle

    一、call和apply的区别 ECMAScript 规范给所有函数都定义了 call 与 apply 两个方法,...

  • call与apply

    首先明确一点,call与apply的作用是一样的,只是传参的形式有区别而已。 1、call与apply的区别 ap...

  • 前端基础(问答24)

    keywords: this、闭包、apply、call。 apply、call 有什么作用,什么区别 apply...

  • this

    this 的值到底是什么?一次说清楚 1、apply、call 、bind的作用与区别? call、apply 调...

  • this 继承

    1.apply call bind的作用与区别 apply call bind都是用来改变函数执行的上下文,也就是...

  • JavaScript 中 apply、call的详解

    apply和call的区别 ECMAScript 规范给所有函数都定义了call与 apply 两个方法,他们的应...

  • bind()和call()和apply()的区别

    bind()和call()和apply()的区别 首先说说call()和apply()的区别 它们都是改变this...

  • this_原型链_继承

    this相关问题 apply、call 、bind的作用以及区别 call、apply和bind方法的用法以及区别...

网友评论

      本文标题:apply()与call()的区别

      本文链接:https://www.haomeiwen.com/subject/uqiwlftx.html