最近在看jQuery源码,里面好多地方用到了call(),apply()一直不是很理解这两个函数,今天花了点时间了解了一下,只是了解了一些皮毛
apply和call()的区别就是里面的参数
apply(thisObj,[arguments])
call(thisObj,arr1,arr2...)
根据网上说的,这两个函数的实质就是改版this的指向,例
function add(a, b){ console.info(this); this.a=a; this.b=b; alert(this.a); } function sub(a, b){ console.info(this); this.a=a; this.b=b; alert(this.a); } add.call(sub, 'sub', 2);//提示sub sub.apply(add, ['add', 2]);//提示add
thisObj也可以是一个对象,比如
</pre></p><p><pre name="code" class="javascript">function test(name){ this.name=name; } test.prototype.sayName=function(){ alert(this.name); } var t=new test('ttt'); t.sayName(); var a={'name':'tom'}; t.sayName.call(a);//提示tom
好吧,组织不好语言,了解的也不多,第一篇文章就这样吧!继续努力!!!