色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

Javascript 陷阱 window全局對象

function Test(){
this.name='Test';
var name=2;
this.show=function(){
alert(name);
alert(this.name);//顯示名字
}
}
var test=new Test();//通過構(gòu)造器創(chuàng)建一個對象
test.show();//輸出2和'Test' ,說明對象方法訪問其屬性時必須加this.

function Test2(){
this.name='Test2';
this.show=function(){
alert(name);
alert(this.name);
}
}
Test();//直接調(diào)用Test();
var test2=new Test2();
test2.show();//輸出了Test,Test2,很奇怪啊,name問什么有值了,而且怎么會是'Test',bug?
alert(name);
window.show(); //輸出2,test;怎么會有show函數(shù)呢,難道是bug

//依次輸出2,Test;Test,Test2;Test;2,Test

// ff和ie6下都是同樣的運行結(jié)果,看來不是bug,那究竟是為什么呢?
// 注意到:對象方法訪問其對象的屬性時|必須|加以this.(和Java不一樣).
// 整個頁面是默認的是|window|對象,那么定義的函數(shù),默認就是window對象的方法。
//直接直接調(diào)用函數(shù)時,相當(dāng)于通過window.調(diào)用方法,那么方法內(nèi)部的this自然就是/
//window對象,this.name='Test'就是為window對象加了一個屬性.
// 那么當(dāng)方法局部作用域內(nèi)未定義name且調(diào)用alert(name),就相當(dāng)于調(diào)用alert(window.name);
/*啊,代碼混亂了。這看起來像一個很嚴重的陷阱!!*/

JavaScript技術(shù)Javascript 陷阱 window全局對象,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 德钦县| 惠安县| 东台市| 龙州县| 淳化县| 周宁县| 白河县| 容城县| 绿春县| 鹤山市| 万载县| 周宁县| 安仁县| 荆门市| 徐水县| 曲周县| 衡南县| 洛阳市| 云林县| 普兰店市| 疏附县| 孝义市| 泗洪县| 保德县| 邹城市| 华坪县| 咸丰县| 平舆县| 安阳县| 拜泉县| 马公市| 无棣县| 游戏| 新乡市| 海晏县| 临沭县| 茌平县| 贞丰县| 榆林市| 读书| 昌吉市|