call和apply
|
|
两者作用一致,都是把obj
绑定到thisObj
,这时候thisObj
具备了obj
的属性和方法。或者说thisObj
继承了obj
的属性和方法。
唯一区别是apply接受的是数组参数,call接受的是连续参数。
|
|
我们在控制台运行:1234567add(5,3); //8add.call(sub, 5, 3); //8add.apply(sub, [5, 3]); //8sub(5, 3); //2sub.call(add, 5, 3); //2sub.apply(add, [5, 3]); //2
bind的使用
|
|
把obj绑定到thisObj,这时候thisObj具备了obj的属性和方法。与call和apply不同的是,bind绑定后不会立即执行。
同样是add()和sub():12add.bind(sub, 5, 3); //不再返回8add.bind(sub, 5, 3)(); //8