它們都是能夠改變this的指向。數組
call和apply都是改變上下文中的this並當即執行這個函數,app
call()和apply()的區別就在於,二者之間的參數。函數
bind方法可讓對應的函數想何時調就何時調用,而且能夠將參數在執行的時候添加this
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