当前位置: 代码迷 >> Web前端 >> apply, call的用法与差异
  详细解决方案

apply, call的用法与差异

热度:479   发布时间:2012-10-27 10:42:26.0
apply, call的用法与区别

相同点:两个方法产生的作用是完全一样的

不同点:方法传递的参数不同

在JavaScript中,代码总是有一个上下文对象,代码处理该对象之内. 上下文对象是通过this变量来体现的, 这个this变量永远指向当前代码所处的对象中

call, apply作用就是借用别人的方法来调用,就像调用自己的一样

call, apply方法区别是,从第二个参数起, call方法参数将依次传递给借用的方法作参数, 而apply直接将这些参数放到一个数组中再传递, 最后借用方法的参数列表是一样的.

如下例子可以看出它们的用法与区别

function A() {
    this.message = "A";
    this.getMessage = function() {
        return this.message;
    }
}

function B() {
    this.message = "B";
    this.setMessage = function(msg) {
        this.message = msg;
    }
    
}

var a = new A();
var b = new B();
b.setMessage.call(a,"A的消息");
alert(a.getMessage());
alert(a.getMessage.call(b));

function test(msg) {
   b.setMessage.apply(a,[msg]); 
 //  b.setMessage.apply(a,arguments); 
}
test("测试");
alert(a.getMessage());
?

  相关解决方案