最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript如何使用bind指定接收者

 更新時(shí)間:2014年05月04日 17:18:25   作者:  
這篇文章主要介紹了javascript如何使用bind指定接收者,需要的朋友可以參考下
復(fù)制代碼 代碼如下:

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

使用ES5給出的forEach循環(huán)examp,并且將它們添加到j(luò)son中的jArray中;
復(fù)制代碼 代碼如下:

examp.forEach(json.jPush);

這個(gè)時(shí)候會(huì)報(bào)錯(cuò):
 

產(chǎn)生這種報(bào)錯(cuò)的原因是json.jPush方法中的this并沒(méi)有指向json對(duì)象,而是指向了window.解決這個(gè)問(wèn)題的方法就是給這個(gè)this找對(duì)人家.
好在forEach()提供了一個(gè)參數(shù),專門(mén)用于指定對(duì)象的.看代碼.
復(fù)制代碼 代碼如下:

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

還有另外一種方法:
復(fù)制代碼 代碼如下:

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

還可以使用bind綁定
復(fù)制代碼 代碼如下:

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

bind是創(chuàng)建了一個(gè)新函數(shù)而不是修改一個(gè)函數(shù).新函數(shù)的行為和原來(lái)函數(shù)的行為一樣,但他的接收者是我們給定的對(duì)象,而原有函數(shù)的接收者保持不變.
這意味著bind方法的使用是非常安全的,因?yàn)橐粋€(gè)函數(shù)或方法被共享的時(shí)候,不用擔(dān)心這個(gè)共享方法不會(huì)被修改掉了.

相關(guān)文章

最新評(píng)論

旺苍县| 安化县| 镶黄旗| 石嘴山市| 昭觉县| 新乡县| 思茅市| 土默特右旗| 利川市| 玉田县| 泸溪县| 宁武县| 井研县| 股票| 台湾省| 宁化县| 岐山县| 曲阳县| 海宁市| 通渭县| 琼结县| 镶黄旗| 鸡西市| 汉寿县| 双鸭山市| 泸州市| 彰武县| 四子王旗| 红桥区| 莱西市| 武清区| 宣城市| 瓦房店市| 汝南县| 资讯 | 东阳市| 合阳县| 霸州市| 上栗县| 乌苏市| 霍城县|