首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

apply, call的用法与差异

2012-10-27 
apply, call的用法与区别相同点:两个方法产生的作用是完全一样的不同点:方法传递的参数不同在JavaScript中

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());
?

热点排行