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

Javascript 陷阱 window全局對象

 更新時間:2008年11月26日 12:31:22   作者:  
ff和ie6下都是同樣的運行結果,看來不是bug,那究竟是為什么呢? 注意到:對象方法訪問其對象的屬性時|必須|加以this.(和java不一樣).
function Test(){
this.name='Test';
var name=2;
this.show=function(){
alert(name);
alert(this.name);//顯示名字
}
}
var test=new Test();//通過構造器創(chuàng)建一個對象
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);
/*啊,代碼混亂了。這看起來像一個很嚴重的陷阱??!*/

相關文章

  • JavaScrip變量聲明關鍵字var、let、const詳解

    JavaScrip變量聲明關鍵字var、let、const詳解

    在JavaScript中var、let和const是用于聲明變量的關鍵字,但它們之間存在一些關鍵的區(qū)別,這篇文章主要介紹了JavaScrip變量聲明關鍵字var、let、const的相關資料,需要的朋友可以參考下
    2025-04-04
  • ES6之Proxy的get方法詳解

    ES6之Proxy的get方法詳解

    這篇文章主要介紹了ES6之Proxy的get方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • javascript數組去掉重復

    javascript數組去掉重復

    去tx面試過幾次,基本都會考到數組去重。其實平時工作中幾乎不會用到,再者也沒認真去了解過,所以基本上每次面到這里都會露出很大的馬腳,面試自然也over了
    2011-05-05
  • JS中‘hello’與new String(‘hello’)引出的問題詳解

    JS中‘hello’與new String(‘hello’)引出的問題詳解

    這篇文章主要給大家介紹了關于JS中'hello'與new String('hello')引出的問題的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧
    2018-08-08
  • JavaScript控制兩個列表框listbox左右交換數據的方法

    JavaScript控制兩個列表框listbox左右交換數據的方法

    這篇文章主要介紹了JavaScript控制兩個列表框listbox左右交換數據的方法,實例分析了javascript操作列表框listbox的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-03-03
  • JavaScript設計模式中的觀察者模式

    JavaScript設計模式中的觀察者模式

    這篇文章主要介紹了JavaScript設計模式中的觀察者模式,觀察者設計模式適用于監(jiān)聽一對多的操作,例如監(jiān)聽對象屬性的修改等等,觀察者模式能夠降低代碼耦合度,提升可擴展性
    2022-06-06
  • 使用JS獲取SessionStorage的值

    使用JS獲取SessionStorage的值

    這篇文章給大家介紹了使用js獲取sessionstorage中的值,首先獲取它是為了將獲得的信息輸出或者alert(),其次,在靜態(tài)頁面中,如果使用sessionStorage就相當于在動態(tài)頁面里連接了數據庫一樣,具體內容詳情大家參考下本文
    2018-01-01
  • 帶大家了解一下JavaScript常見的五個內存錯誤

    帶大家了解一下JavaScript常見的五個內存錯誤

    這篇文章主要為大家介紹了JavaScript常見的五個內存錯誤,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • JavaScript實現電話號碼格式化的解法小結

    JavaScript實現電話號碼格式化的解法小結

    在 JavaScript 編程中,經常會遇到將給定數據轉換為特定格式的問題,本文為大家整理了一些常用方法,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-11-11
  • JavaScript解決浮點數計算不準確問題的方法分析

    JavaScript解決浮點數計算不準確問題的方法分析

    這篇文章主要介紹了JavaScript解決浮點數計算不準確問題的方法,結合實例形式分析了javascript浮點數運算精度誤差的原因以及相關的解決方法與具體操作技巧,需要的朋友可以參考下
    2018-07-07

最新評論

金昌市| 冀州市| 安顺市| 桃园市| 松桃| 和平区| 扶绥县| 潼关县| 新和县| 尼木县| 普兰店市| 平湖市| 明光市| 阳春市| 璧山县| 和平县| 泸水县| 平阳县| 福海县| 太原市| 韩城市| 阿图什市| 治县。| 克拉玛依市| 富锦市| 荆州市| 科技| 托里县| 新宁县| 九龙县| 西丰县| 桑日县| 桦川县| 邻水| 阳朔县| 德州市| 会昌县| 陆川县| 新绛县| 皋兰县| 花莲县|