1. 程式人生 > >JS--理解call、apply和bind

JS--理解call、apply和bind

call、apply和bind

  call,apply是Function原型中的方法,它們的作用一樣,區別在於傳入引數的方式不同。

 

call(thisArg, arg1, arg2...)

  傳入的引數不固定,第一個引數用來指定函式內部this的指向,從第二個引數往後的所有元素引數依次傳入被呼叫的函式

 

apply(thisArg, argArray)

  可以傳入兩個引數,第一個引數用來指定函式內部this的指向,第二個引數是一個帶有下標的集合(Array物件or類陣列arguments),

  apply把這個集合中的元素依次傳遞給被呼叫的函式

 

bind(thisArg, arg1, arg2...)

  傳入的引數不固定,第一個引數用來指定函式內部this的指向,從第二個引數往後的所有引數依次傳入被呼叫的函式

  建立一個函式例項,this會被繫結到傳給bind函式的第一個引數上

 

call、apply在實際開發中的應用

  改變被呼叫函式內部的this指向

  實現Function.prototype.bind函式

  借用其他物件的方法