天天看點

js筆記——call,apply,bind使用筆記

兩者作用一緻,都是把<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綁定到全局對象。

繼續閱讀