1. 程式人生 > 實用技巧 >javascript之動態改變this上下文

javascript之動態改變this上下文

call、aplly、bind三種方法都能實現改變函式執行時的上下文,簡單來說就是改變函式執行時的this指向

區別

1、 call(): 第一個引數表示this指向的新目標,從第二個引數開始以引數列表的形式展現用法:a.call(b,1,2,3);表示要把a函式的this指向修改為b的this指向,並且執行a函式,傳進去的引數是(1,2,3)。

2、 apply():第一個引數表示this指向的新目標,第二個引數接受的是一個數組作為引數傳入。 用法:a.apply(b,[1,2]);表示要把a函式的this指向修改為b的this指向,並且執行a函式,傳進去的引數[1,2]

3、bind()方法會建立一個新的函式(和apply、call不同就是不會馬上的執行: new = a.bind(b)),稱為繫結函式,當呼叫這個繫結函式時,繫結函式會以建立它時傳入bind()方法的第一個引數作為this,傳入的bind()方法的第二個以及以後的引數加上繫結函式執行時本身的引數按照順序作為原函式的引數來呼叫原函式

注意:bind這個方法在IE6~8下不相容