call apply bind區別

西芹兒發表於2018-07-02

call和apply都是改變this指向,指向呼叫他們的物件

call 需要把引數按順序傳遞進去,而 apply 則是把引數放在陣列裡。

偽陣列(類陣列):無法直接呼叫陣列方法或期望length屬性有什麼特殊的行為,但仍可以對真正陣列遍歷方法來遍歷它們。典型的是函式的argument引數,還有像呼叫getElementsByTagName,document.childNodes之類的,它們都返回NodeList物件都屬於偽陣列。可以使用Array.prototype.slice.call(fakeArray)將陣列轉化為真正的Array物件。
  • apply 、 call 、bind 三者都是用來改變函式的this物件的指向的;
  • apply 、 call 、bind 三者第一個引數都是this要指向的物件,也就是想指定的上下文;
  • apply 、 call 、bind 三者都可以利用後續引數傳參;
  • bind 是返回對應函式,便於稍後呼叫;apply 、call 則是立即呼叫 。




相關文章