最新国产好看的视频,伊人天堂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并沒有指向json對象,而是指向了window.解決這個(gè)問題的方法就是給這個(gè)this找對人家.
好在forEach()提供了一個(gè)參數(shù),專門用于指定對象的.看代碼.
復(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ù)的行為和原來函數(shù)的行為一樣,但他的接收者是我們給定的對象,而原有函數(shù)的接收者保持不變.
這意味著bind方法的使用是非常安全的,因?yàn)橐粋€(gè)函數(shù)或方法被共享的時(shí)候,不用擔(dān)心這個(gè)共享方法不會(huì)被修改掉了.

相關(guān)文章

最新評論

会宁县| 辽中县| 于都县| 郧西县| 农安县| 庆安县| 正宁县| 交城县| 邮箱| 平原县| 杭州市| 长沙市| 宜城市| 出国| 安岳县| 怀远县| 辉南县| 兖州市| 定南县| 黄大仙区| 商城县| 波密县| 浦东新区| 惠来县| 金平| 清水河县| 余江县| 莱阳市| 桃江县| 郁南县| 翁牛特旗| 萍乡市| 莲花县| 河东区| 象州县| 四川省| 尖扎县| 阜南县| 宜丰县| 鲁甸县| 湘阴县|