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

首頁 > 語言 > JavaScript > 正文

Javascript 陷阱 window全局對象

2024-05-06 14:16:40
字體:
來源:轉載
供稿:網友
function Test(){
this.name='Test';
var name=2;
this.show=function(){
alert(name);
alert(this.name);//顯示名字
}
}
var test=new Test();//通過構造器創建一個對象
test.show();//輸出2和'Test' ,說明對象方法訪問其屬性時必須加this.

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

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

// ff和ie6下都是同樣的運行結果,看來不是bug,那究竟是為什么呢?
// 注意到:對象方法訪問其對象的屬性時|必須|加以this.(和java不一樣).
// 整個頁面是默認的是|window|對象,那么定義的函數,默認就是window對象的方法。
//直接直接調用函數時,相當于通過window.調用方法,那么方法內部的this自然就是/
//window對象,this.name='Test'就是為window對象加了一個屬性.
// 那么當方法局部作用域內未定義name且調用alert(name),就相當于調用alert(window.name);
/*啊,代碼混亂了。這看起來像一個很嚴重的陷阱??!*/
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 五大连池市| 家居| 红原县| 施甸县| 宜兰县| 西贡区| 卫辉市| 南皮县| 抚州市| 呼伦贝尔市| 敦煌市| 乌拉特后旗| 周口市| 蒙自县| 新和县| 海林市| 沈阳市| 平山县| 临城县| 聂拉木县| 鱼台县| 三河市| 益阳市| 南通市| 青铜峡市| 分宜县| 大竹县| 四川省| 临沭县| 蕲春县| 井研县| 吴川市| 保靖县| 临武县| 克山县| 澄城县| 内黄县| 尼勒克县| 马鞍山市| 巴南区| 西乡县|