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