这篇文章主要介绍了关于JavaScript中name的意义冲突,需要的朋友可以参考下
在昨天的《Javascript权威指南》学习笔记之十:ECMAScript 5 增强的对象模型一文中,对于一段代码的调试出现了一个奇怪现象,现将源代码贴在下面:
 
<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中运行结果:
http://img.blog.csdn.net/20140529073008296?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTA0Mzg0Mw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
这个结果是正确的,但是,改一个地方,结果就不同了
 
<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>

运行结果:
 
这是为什么呢?就只是改了一个简单的变量名啊

问题出在了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的值的类型。
最新资讯
人民日报:“菜篮子”供应足 农产品线上购销活跃

人民日报:“菜篮子”供

消费者居家隔离,线下交易大幅减少,线上交易成为消费者的
疫情带动“宅”经济 彩电行业迭代升级提速

疫情带动“宅”经济

对于彩电行业来说,新型冠状病毒感染的肺炎疫情除了对其
蔚来汽车资金“迷局”:遭高瓴清仓 传吉利入股

蔚来汽车资金“迷局”

作为造车新势力的头部玩家,蔚来汽车在资本市场的频频动
特斯拉“单挑”电池巨头:强势买方的超级野心

特斯拉“单挑”电池巨

上海工厂投产后,特斯拉的动力电池供应链终于开始真正地
疫情“压裂”蛋壳  高速扩张带来的隐与忧

疫情“压裂”蛋壳 高

连日来,长租公寓蛋壳、自如在多个城市遭房东、租客双重
采用无钴电池即磷酸铁锂电池?特斯拉说不一定

采用无钴电池即磷酸铁

2月21日,特斯拉表示:”请留意四月特斯拉的电池发布会,无
最新文章
Vue实现图片与文字混输效果

Vue实现图片与文字混

用多了 JQuery ,习惯了使用JQuery的API操作 DOM ,几乎忘
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)

Vue实现点击当前元素

这篇文章主要介绍了Vue实现点击当前元素以外的地方隐
Vue实现验证码功能

Vue实现验证码功能

这篇文章主要为大家详细介绍了Vue实现验证码功能,文中
JS实现的雪花飘落特效示例

JS实现的雪花飘落特效

这篇文章主要介绍了JS实现的雪花飘落特效,结合实例形
微信小程序实现图片压缩

微信小程序实现图片压

这篇文章主要为大家详细介绍了微信小程序实现图片压缩
JavaScript实现京东放大镜效果

JavaScript实现京东放

这篇文章主要为大家详细介绍了JavaScript实现京东放大