call和apply

call和apply:调用一个对象的一个方法,以另一个对象替换当前对象

 

注意到,call()与apply()的区别:功能一样。第二个参数形式不一样。call传递多个参数,是任意形式。apply第二个参数必须是数组形式。

用代码来理解它们区别最好:

a.call(b,2,3); ==>  a.apply(b,[2,3]);//数组形式传入

 

不过,这里想说的是:call和apply传入this(对象自身)作为参数,则会马上执行。

var view = {
        init : function() {
            //正常调用方式
            this.test();
            //通过call或apply方式,如果传入this(对象自身)作为参数,则该函数就会马上执行,效果和this.test()一样。
            this.test.call(this);
        },
        test : function() {
        }
    };

 

 

可参考:

http://www.cnblogs.com/wangtao_20/archive/2011/01/01/1923918.html

posted @ 2016-02-24 15:28  simonbaker  阅读(117)  评论(0编辑  收藏  举报