1. 程式人生 > >JavaScript基礎概念之----call()、apply()、bind()

JavaScript基礎概念之----call()、apply()、bind()

它們都是可以改變this的指向。

call和apply都是改變上下文中的this並立即執行這個函式,

call()和apply()的區別就在於,兩者之間的引數。

bind方法可以讓對應的函式想什麼時候調就什麼時候呼叫,並且可以將引數在執行的時候新增

var o = {}

function func(a,b,c){
  console.log(a);
}
//每個引數單獨傳遞 func.call(o,1,2,3)
//立即執行 輸出 1
var o = {}

function func(a,b,c){
   console.log(b)
}
//引數以陣列形式傳遞
func.apply(o,[
1,2,3]) //立即執行 輸出 2
var o = {}

function func(a,b,c){
   console.log(c)
}

var b = func.bind(o) //沒有立即執行
b(1,2,3)//輸出 3