两者作用一致,都是把<code>obj</code>(即this)绑定到<code>thisobj</code>,这时候<code>thisobj</code>具备了<code>obj</code>的属性和方法。或者说<code>thisobj</code>『继承』了<code>obj</code>的属性和方法。绑定后会立即执行函数。
唯一区别是apply接受的是数组参数,call接受的是连续参数。
我们在控制台运行:
示例:
对象a类似array,但不具备array的slice等方法。使用call绑定,这时候就可以调用slice方法。
通过call和apply,我们可以实现对象继承。示例:
以上实现了对象的继承。
把obj绑定到thisobj,这时候thisobj具备了obj的属性和方法。与call和apply不同的是,bind绑定后不会立即执行。
同样是add()和sub():
如果bind的第一个参数是null或者undefined,等于将this绑定到全局对象。