麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

javascript如何使用bind指定接收者

2019-11-20 20:44:47
字體:
來源:轉載
供稿:網友
復制代碼 代碼如下:

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

使用ES5給出的forEach循環examp,并且將它們添加到json中的jArray中;
復制代碼 代碼如下:

examp.forEach(json.jPush);

這個時候會報錯:
 

產生這種報錯的原因是json.jPush方法中的this并沒有指向json對象,而是指向了window.解決這個問題的方法就是給這個this找對人家.
好在forEach()提供了一個參數,專門用于指定對象的.看代碼.
復制代碼 代碼如下:

examp.forEach(json.jPush,json);
alert(json.jArray);//結果正常了是,123~456

還有另外一種方法:
復制代碼 代碼如下:

examp.forEach(function (c) {
json.jPush(c);
});
alert(json.jArray);//123~456

還可以使用bind綁定
復制代碼 代碼如下:

examp.forEach(json.jPush.bind(json));
alert(json.jArray);

bind是創建了一個新函數而不是修改一個函數.新函數的行為和原來函數的行為一樣,但他的接收者是我們給定的對象,而原有函數的接收者保持不變.
這意味著bind方法的使用是非常安全的,因為一個函數或方法被共享的時候,不用擔心這個共享方法不會被修改掉了.
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 在线a视频 | 国产一级毛片高清 | 黄色三级网站 | 中文字幕激情视频 | 成人毛片免费视频 | 99sesese| 久草视频福利在线观看 | 免费视频aaa | 欧美一级做a | 久久亚洲一区二区三区成人国产 | 欧美日韩高清在线观看 | 精品一二三区视频 | 国产1区2区3区在线观看 | 久草在线网址 | 日本aaaa片毛片免费观蜜桃 | 久久久久电影网站 | 北原夏美av | 毛片小网站 | 亚洲情在线 | 91av在线免费观看 | 在线免费观看毛片视频 | 久久精品99久久久久久2456 | 久草成人在线观看 | 欧美一级毛片大片免费播放 | 黄视频免费观看 | 亚洲午夜精品视频 | 操操操操操 | chinesehdxxxx无套 久久另类视频 | 成人做爰s片免费看网站 | 亚洲 综合 欧美 动漫 丝袜图 | 免费看性xxx高清视频自由 | 91看片免费版 | 中文字幕电影免费播放 | 视频一区二区在线播放 | 露脸各种姿势啪啪的清纯美女 | 精品中文一区 | 久草手机在线 | 男女生羞羞视频网站在线观看 | 日本在线精品视频 | 久久午夜神器 | 精品一区二区久久久久久久网精 |