国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

通過一段代碼簡單說js中的this的使用

2019-11-20 22:29:58
字體:
供稿:網(wǎng)友
今天有朋友說遇到如下代碼,讓我?guī)徒忉屧?
復(fù)制代碼 代碼如下:

var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
return function(){
return this.name;
};
}
};

alert(object.getNameFunc()());原因是js的this是動態(tài)決定的,和你調(diào)用方式有直接關(guān)系。

簡單說如果你調(diào)用一個函數(shù)的時候使用“對象.函數(shù)名”的方式,那么this就是這個.(點)之前的對象,否則是window。
比如你在調(diào)用object.getNameFunc()的時候getNameFunc函數(shù)體中的this是剛聲明的object。如果你寫成
復(fù)制代碼 代碼如下:

var func = object.getNameFunc;
func();

這時候getNameFunc函數(shù)體中的this是window,雖然是同一函數(shù)調(diào)用方式的不同決定了this的不同。
同樣的道理,object.getNameFunc()返回的是一個函數(shù)引用,加一個括號就是讓函數(shù)執(zhí)行。其實相當(dāng)于如下代碼
復(fù)制代碼 代碼如下:

var func = object.getNameFunc();
alert( func() );

函數(shù)前沒有“對象.”這種形式,所以執(zhí)行函數(shù)時候this是window,結(jié)果就很明顯了。

以后我會寫一篇關(guān)于js this的文章,歡迎大家關(guān)注我的CSDN博客tt361。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 吉安市| 昔阳县| 拉孜县| 柳河县| 郴州市| 马公市| 秦安县| 平潭县| 杭州市| 腾冲县| 东乌珠穆沁旗| 荥阳市| 尖扎县| 阿城市| 雅安市| 宜宾市| 博兴县| 根河市| 南和县| 贵定县| 衡南县| 顺平县| 阿克陶县| 嘉义市| 梁山县| 会宁县| 新兴县| 南涧| 城固县| 山阴县| 镇平县| 无锡市| 桓台县| 郯城县| 泾源县| 黔西县| 开鲁县| 淮北市| 德保县| 临武县| 汶上县|