关于JavaScript中name的意义冲突示例介绍

 更新时间:2014年05月29日 14:48:25   作者:  
这篇文章主要介绍了关于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的值的类型。

相关文章

  • javascript 函数及作用域总结介绍

    javascript 函数及作用域总结介绍

    本文是对javascript在的函数及作用域进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • JS 连接MQTT的使用方法

    JS 连接MQTT的使用方法

    这篇文章主要介绍了JS 连接MQTT的使用方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-01-01
  • 微信小程序实现打卡日历功能

    微信小程序实现打卡日历功能

    这篇文章主要为大家详细介绍了微信小程序实现打卡日历功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • 如何给JS中的数组开头添加元素

    如何给JS中的数组开头添加元素

    这篇文章主要介绍了如何给JS中的数组开头添加元素,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • JS实现图片旋转动画效果封装与使用示例

    JS实现图片旋转动画效果封装与使用示例

    这篇文章主要介绍了JS实现图片旋转动画效果封装与使用,结合实例形式分析了JavaScript实现图片元素旋转的相关功能代码的封装与使用操作技巧,需要的朋友可以参考下
    2018-07-07
  • 关于function类中定义变量this的简单说明

    关于function类中定义变量this的简单说明

    下面小编就为大家带来一篇关于function类中定义变量this的简单说明。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • JavaScript限定复选框的选择个数示例代码

    JavaScript限定复选框的选择个数示例代码

    有10个复选框,用户最多只能勾选3个,否则就灰掉所有复选框,具体实现思路及代码如下,感兴趣的朋友可以参考下,希望对大家有所帮助
    2013-08-08
  • js实现点击切换卡片功能

    js实现点击切换卡片功能

    这篇文章主要为大家详细介绍了js实现点击切换卡片功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • javascript获取作用在元素上面的样式属性代码

    javascript获取作用在元素上面的样式属性代码

    遍历所有样式属性,通过判断其属性值,是否为'undefined' 或特特的值,来过虑属性
    2012-09-09
  • JS使用canvas中的measureText方法测量字体宽度示例

    JS使用canvas中的measureText方法测量字体宽度示例

    这篇文章主要介绍了JS使用canvas中的measureText方法测量字体宽度,结合实例形式分析了canvas的measureText方法相关使用技巧,需要的朋友可以参考下
    2019-02-02

最新评论