首頁 > web前端 > js教程 > javascript如何使用bind指定接收者_javascript技巧

javascript如何使用bind指定接收者_javascript技巧

WBOY
發布: 2016-05-16 16:50:14
原創
1108 人瀏覽過
複製程式碼 程式碼如下:

var json = {
jArray: [🎜>
var json = {
jArray: [ [],], jPush: function (c) {
this.jArray.push(c);
}
}
var examp = ["123", "~", "456"];


使用ES5給出的forEach循環examp,並且將它們添加到json中的jArray中; 程式碼如下:


examp.forEach(json.jPush);


這個時候會報錯: javascript如何使用bind指定接收者_javascript技巧
 
這個時候會報錯:

 
產生這種報錯的原因是json.jPush方法中的this並沒有指向json對象,而是指向了window.解決這個問題的方法就是給這個this找對人家. 好在forEach()提供了一個參數,專門用來指定物件的.看程式碼.
複製程式碼


程式碼如下:


程式碼如下:
examp .forEach(json.jPush,json); alert(json.jArray);//結果正常了是,123~456 還有另一種方法:


複製程式碼


程式碼如下:


examp.forEach(function (c) {
examp.forEach(function (c) { c); }); alert(json.jArray);//123~456
也可以使用bind綁定



複製程式碼

程式碼如下: examp.forEach(json.jPush.bind(json)); Aralert(json.jray) ; bind是創建了一個新函數而不是修改一個函數.新函數的行為和原來函數的行為一樣,但他的接收者是我們給定的對象,而原有函數的接收者保持不變. 這意味著bind方法的使用是非常安全的,因為一個函數或方法被共享的時候,不用擔心這個共享方法不會被修改掉了.
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板