關(guān)于JavaScript中name的意義沖突示例介紹
更新時(shí)間:2014年05月29日 14:48:25 作者:
這篇文章主要介紹了關(guān)于JavaScript中name的意義沖突,需要的朋友可以參考下
在昨天的《Javascript權(quán)威指南》學(xué)習(xí)筆記之十:ECMAScript 5 增強(qiáng)的對(duì)象模型一文中,對(duì)于一段代碼的調(diào)試出現(xiàn)了一個(gè)奇怪現(xiàn)象,現(xiàn)將源代碼貼在下面:
<script type="text/javascript">
function Person(){}
var per = new Person;
Object.defineProperties(per,
{
"nickName":
{
value:"Tom",
writable:true
},
"age":
{
value:20,
configurable:false,
writable:false
}
});
var o = Object.getOwnPropertyDescriptor(per,"nickName");
alert(JSON.stringify(o));
</script>
Google中運(yùn)行結(jié)果:
http://img.blog.csdn.net/20140529073008296?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTA0Mzg0Mw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
這個(gè)結(jié)果是正確的,但是,改一個(gè)地方,結(jié)果就不同了
<script type="text/javascript">
function Person(){}
var per = new Person;
Object.defineProperties(per,
{
"nickName":
{
value:"Tom",
writable:true
},
"age":
{
value:20,
configurable:false,
writable:false
}
});
var name = Object.getOwnPropertyDescriptor(per,"nickName");
alert(JSON.stringify(name));
</script>
運(yùn)行結(jié)果:
這是為什么呢?就只是改了一個(gè)簡(jiǎn)單的變量名啊
問(wèn)題出在了name身上,但是本人出入JS,不懂,在網(wǎng)上找了資料也沒(méi)有結(jié)果,后面就去請(qǐng)教了一個(gè)師兄,也把問(wèn)題放在了論壇上:http://bbs.csdn.net/topics/390799744?page=1#post-397474060,
name是window屬性,作用是設(shè)置或返回窗口的名字,數(shù)據(jù)類型是字符串。因?yàn)榈谝痪涫莊unction Person(){},已經(jīng)結(jié)束了,所以下面的代碼可能在全局context中,也就是說(shuō)你以為alert(JSON.stringify(name));是輸出的上面的var name,但實(shí)際上可能輸出的是window.name。至于輸出[Object object],這個(gè)類型是name的值的類型。
復(fù)制代碼 代碼如下:
<script type="text/javascript">
function Person(){}
var per = new Person;
Object.defineProperties(per,
{
"nickName":
{
value:"Tom",
writable:true
},
"age":
{
value:20,
configurable:false,
writable:false
}
});
var o = Object.getOwnPropertyDescriptor(per,"nickName");
alert(JSON.stringify(o));
</script>
Google中運(yùn)行結(jié)果:
http://img.blog.csdn.net/20140529073008296?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTA0Mzg0Mw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
這個(gè)結(jié)果是正確的,但是,改一個(gè)地方,結(jié)果就不同了
復(fù)制代碼 代碼如下:
<script type="text/javascript">
function Person(){}
var per = new Person;
Object.defineProperties(per,
{
"nickName":
{
value:"Tom",
writable:true
},
"age":
{
value:20,
configurable:false,
writable:false
}
});
var name = Object.getOwnPropertyDescriptor(per,"nickName");
alert(JSON.stringify(name));
</script>
運(yùn)行結(jié)果:

這是為什么呢?就只是改了一個(gè)簡(jiǎn)單的變量名啊
問(wèn)題出在了name身上,但是本人出入JS,不懂,在網(wǎng)上找了資料也沒(méi)有結(jié)果,后面就去請(qǐng)教了一個(gè)師兄,也把問(wèn)題放在了論壇上:http://bbs.csdn.net/topics/390799744?page=1#post-397474060,
name是window屬性,作用是設(shè)置或返回窗口的名字,數(shù)據(jù)類型是字符串。因?yàn)榈谝痪涫莊unction Person(){},已經(jīng)結(jié)束了,所以下面的代碼可能在全局context中,也就是說(shuō)你以為alert(JSON.stringify(name));是輸出的上面的var name,但實(shí)際上可能輸出的是window.name。至于輸出[Object object],這個(gè)類型是name的值的類型。
相關(guān)文章
JavaScript實(shí)現(xiàn)單英文金山打字通
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)單英文金山打字通,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06js 簡(jiǎn)易版滾動(dòng)條實(shí)例(適用于移動(dòng)端H5開(kāi)發(fā))
下面小編就為大家?guī)?lái)一篇js 簡(jiǎn)易版滾動(dòng)條實(shí)例(適用于移動(dòng)端H5開(kāi)發(fā))。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06JS字符串false轉(zhuǎn)boolean的方法(推薦)
下面小編就為大家?guī)?lái)一篇JS字符串false轉(zhuǎn)boolean的方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03微信小程序仿知乎實(shí)現(xiàn)評(píng)論留言功能
這篇文章主要為大家詳細(xì)介紹了微信小程序仿知乎實(shí)現(xiàn)評(píng)論留言功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11純js實(shí)現(xiàn)的積木(div層)拖動(dòng)功能示例
這篇文章主要介紹了純js實(shí)現(xiàn)的積木(div層)拖動(dòng)功能,結(jié)合實(shí)例形式分析了javascript隨機(jī)生成各種顏色div層及響應(yīng)鼠標(biāo)事件改變?cè)貙傩詫?shí)現(xiàn)拖動(dòng)效果的相關(guān)操作技巧,需要的朋友可以參考下2017-07-07MockJs結(jié)合json-server模擬后臺(tái)數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了MockJs結(jié)合json-server模擬后臺(tái)數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07重學(xué)JS之顯示強(qiáng)制類型轉(zhuǎn)換詳解
這篇文章主要給大家介紹了關(guān)于重學(xué)JS之顯示強(qiáng)制類型轉(zhuǎn)換的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用JS具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06JS獲取計(jì)算機(jī)mac地址以及IP的實(shí)現(xiàn)方法
本篇文章主要是對(duì)利用JS獲取計(jì)算機(jī)mac地址以及IP的實(shí)現(xiàn)方法進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-01-01