apply call bind方法呼叫

2022-07-23 12:21:11 字數 529 閱讀 3832

---恢復內容開始---

首先這三個方法的作用都是用來改變this的值,而this的值一般有幾種情況。

1、函式作為乙個物件的乙個方法來呼叫,此時this的值指向物件。

var a=

}a.f(1);

2、函式的正常呼叫,此時的this指向全域性物件,一般來說是window物件。

function

f(x)

f(1);

3、正常函式,但是用new來呼叫函式,此時this的值指向新建立的物件。

function

f(xx)

var b=new f(1);

call函式,第乙個引數是改變之後的this的指向物件,但是後來的引數是不定的,有多少個傳多少個,必須明確額度傳遞每乙個引數,也是立即執行的。

bind函式和call相似,第乙個引數是this的指向物件,從第二個開始時接受的引數列表,但是bind函式是返回函式,需要呼叫而不是立即執行。

---恢復內容結束---

apply call bind 使用總結

參考 語法 語法 fun.call thisarg arg1 arg2 var a var b a.fn 接受的是乙個陣列var a var b a.fn 接受的是引數 b.call a,1,2 3var a var b a.fn b.bind a,1,2 以上code我們會發現並沒有輸出.bind...

apply,call,bind個人總結

首先他們是用來改變呼叫方法中this的指向的,而且他們都是function的prototype。分別為 function.prototype.call function.prototype.bind 引數1 thisarg 物件也就是需要指向this的物件 引數2 argsarray 陣列 會按對應...

手動實現apply call bind

window.a 1 定義乙個全域性變數 var obj 定義乙個物件用來繫結 var funct function b,c 定義乙個函式用來執行 funct 1,2 1 1 2 直接執行,相當於window.funct 1,2 this繫結於window base base window 傳遞繫結...