关于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 相关文章推荐
深入分析jquery解析json数据
Dec 09 Javascript
Node.js node-schedule定时任务隔多少分钟执行一次的方法
Feb 10 Javascript
详解JavaScript中void语句的使用
Jun 04 Javascript
jQuery中的siblings用法实例分析
Dec 24 Javascript
使用JavaScript实现ajax的实例代码
May 11 Javascript
用js控件div的滚动条,让它在内容更新时自动滚到底部的实现方法
Oct 27 Javascript
微信小程序图片选择、上传到服务器、预览(PHP)实现实例
May 11 Javascript
值得收藏的vuejs安装教程
Nov 21 Javascript
Vue 父子组件的数据传递、修改和更新方法
Mar 01 Javascript
微信小程序框架wepy之动态控制类名
Sep 14 Javascript
小白教程|一小时上手最流行的前端框架vue(推荐)
Apr 10 Javascript
小程序双头slider选择器的实现示例
Mar 31 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
使用NetBeans + Xdebug调试PHP程序的方法
2011/04/12 PHP
php 常用算法和时间复杂度
2013/07/01 PHP
举例详解PHP脚本的测试方法
2015/08/05 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
2016/11/03 PHP
PHP中的正则表达式实例详解
2017/04/25 PHP
Laravel 之url参数,获取路由参数的例子
2019/10/21 PHP
PHP扩展类型及安装方式解析
2020/04/27 PHP
jQuery chili图片远处放大插件
2009/11/30 Javascript
始终在屏幕中间显示Div的代码(css+js)
2011/03/10 Javascript
node.js chat程序如何实现Ajax long-polling长链接刷新模式
2012/03/13 Javascript
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
一行命令搞定node.js 版本升级
2014/07/20 Javascript
jQuery操作表单常用控件方法小结
2015/03/23 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
2017/02/17 Javascript
基于Bootstrap漂亮简洁的CSS3价格表(附源码下载)
2017/02/28 Javascript
JS触摸事件、手势事件详解
2017/05/04 Javascript
JavaScript实现的贝塞尔曲线算法简单示例
2018/01/30 Javascript
JS字符串与二进制的相互转化实例代码详解
2019/06/28 Javascript
微信小程序webSocket的使用方法
2020/02/20 Javascript
[01:57]2016完美“圣”典风云人物:国士无双专访
2016/12/04 DOTA
[01:24:16]2018DOTA2亚洲邀请赛 4.6 全明星赛
2018/04/10 DOTA
Python设计模式之观察者模式实例
2014/04/26 Python
Python实现投影法分割图像示例(一)
2020/01/17 Python
python实现简单学生信息管理系统
2020/04/09 Python
Python中qutip用法示例详解
2020/10/02 Python
X/HTML5 和 XHTML2
2008/10/17 HTML / CSS
医药大学生求职简历的自我评价
2013/10/17 职场文书
信息管理专业推荐信
2013/10/29 职场文书
国贸专业求职信
2014/06/28 职场文书
联片教研活动总结
2014/07/01 职场文书
电子专业自荐信
2014/07/01 职场文书
课外小组活动总结
2014/08/27 职场文书
学校2015年纠风工作总结
2015/05/15 职场文书
2015年幼儿园教育教学工作总结
2015/05/25 职场文书
企业党建工作总结2015
2015/05/26 职场文书
netty 实现tomcat的示例代码
2022/06/05 Servers