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


Posted in Javascript onMay 29, 2014

在昨天的《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>

运行结果:
关于JavaScript中name的意义冲突示例介绍 
这是为什么呢?就只是改了一个简单的变量名啊

问题出在了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 getElementsByClassName 和js取地址栏参数
Jan 02 Javascript
jQuery中的.bind()、.live()和.delegate()之间区别分析
Jun 08 Javascript
jQuery实现跟随鼠标运动图层效果的方法
Feb 02 Javascript
JavaScript数据结构和算法之图和图算法
Feb 11 Javascript
Javascript中获取对象的原型对象的方法小结
Feb 25 Javascript
浅谈JavaScript正则表达式分组匹配
Apr 10 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
Feb 05 Javascript
vue-resource 拦截器使用详解
Feb 21 Javascript
vue+vuex+axios实现登录、注册页权限拦截
Mar 09 Javascript
vue数据传递--我有特殊的实现技巧
Mar 20 Javascript
详解Node.js amqplib 连接 Rabbit MQ最佳实践
Jan 24 Javascript
在antd中setFieldsValue和defaultVal的用法
Oct 29 Javascript
window.open()详解及浏览器兼容性问题示例探讨
May 29 #Javascript
javaScript年份下拉列表框内容为当前年份及前后50年
May 28 #Javascript
href下载文件根据id取url并下载
May 28 #Javascript
javascript自定义的addClass()方法
May 28 #Javascript
使用insertAfter()方法在现有元素后添加一个新元素
May 28 #Javascript
用html+css+js实现的一个简单的图片切换特效
May 28 #Javascript
HTML页面登录时的JS验证方法
May 28 #Javascript
You might like
PHP的栏目导航程序
2006/10/09 PHP
PHP获取用户的浏览器与操作系统信息的代码
2012/09/04 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
php调用Google translate_tts api实现代码
2013/08/07 PHP
PHP按符号截取字符串的指定部分的实现方法
2018/09/10 PHP
php多进程模拟并发事务产生的问题小结
2018/12/07 PHP
网络图片延迟加载实现代码 超越jquery控件
2010/03/27 Javascript
jquery显示和隐藏div特效实例
2013/02/27 Javascript
探讨JavaScript中声明全局变量三种方式的异同
2013/12/03 Javascript
jQuery判断元素是否存在的可靠方法
2014/05/06 Javascript
推荐4个原生javascript常用的函数
2015/01/12 Javascript
JQuery显示隐藏DIV的方法及代码实例
2015/04/16 Javascript
js实现动态加载脚本的方法实例汇总
2015/11/02 Javascript
使用jQuery中的wrap()函数操作HTML元素的教程
2016/05/24 Javascript
JavaScript Ajax编程 应用篇
2016/07/02 Javascript
浅谈 Vue 项目优化的方法
2017/12/16 Javascript
webpack中如何使用雪碧图的示例代码
2018/11/11 Javascript
如何为vuex实现带参数的 getter和state.commit
2019/01/04 Javascript
JS实现碰撞检测效果
2020/03/12 Javascript
[40:19]2018完美盛典CS.GO表演赛
2018/12/17 DOTA
初学Python实用技巧两则
2014/08/29 Python
使用Python写个小监控
2016/01/27 Python
利用python获取某年中每个月的第一天和最后一天
2016/12/15 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
2019/02/26 Python
Python数据可视化 pyecharts实现各种统计图表过程详解
2019/08/15 Python
Ubuntu中配置TensorFlow使用环境的方法
2020/04/21 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
你的自行车健身专家:FaFit24
2016/11/16 全球购物
几道数据库的面试题或笔试题
2014/05/31 面试题
关于环保的宣传稿
2015/07/23 职场文书
汽车车尾标语大全
2015/08/11 职场文书
节水宣传标语口号
2015/12/26 职场文书
2017寒假社会实践心得体会范文
2016/01/14 职场文书
2016学习依法治国心得体会
2016/01/15 职场文书
初中信息技术教学反思
2016/02/16 职场文书
高中英语教学反思范文
2016/03/02 职场文书