首頁 > web前端 > js教程 > 關於JavaScript中name的意義衝突範例介紹_javascript技巧

關於JavaScript中name的意義衝突範例介紹_javascript技巧

WBOY
發布: 2016-05-16 16:46:31
原創
1226 人瀏覽過

在昨天的《Javascript權威指南》學習筆記之十:ECMAScript 5 增強的物件模型一文中,對於一段程式碼的調試出現了一個奇怪現象,現將原始程式碼貼在下面:

複製程式碼 程式碼如下:



Google中執行結果:
http ://img.blog.csdn.net/20140529073008296?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTA0Mzg0Mw==/font/5a6L5uZXQvdTAxMTA0Mzg0Mw==/font/5a6L5L2T/fonts? 🎜>這個結果是正確的,但是,改一個地方,結果不同了

複製程式碼 程式碼如下:
程式碼如下:

alert(JSON.stringify(name));

關於JavaScript中name的意義衝突範例介紹_javascript技巧
運行結果:

 
這是為什麼呢?只是改了一個簡單的變數名稱
問題出在了name身上,但是本人出入JS,不懂,在網上找了資料也沒有結果,後面就去請教了一個師兄,也把問題放在了論壇上:http://bbs.csdn.net/topics/390799744?page=1#post-397474060, name是window屬性,作用是設定或傳回視窗的名字,數據類型是字串。因為第一句是function Person(){},已經結束了,所以下面的程式碼可能在全域context中,也就是說你以為alert(JSON.stringify(name));是輸出的上面的var name,但實際上可能輸出的是window.name。至於輸出[Object object],這個型別是name的值的型別。
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板