关于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子元素过滤选择器使用示例
Jun 24 Javascript
JS获取鼠标坐标的实例方法
Jul 18 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
Nov 25 Javascript
JS动态添加iframe的代码
Sep 14 Javascript
js常用DOM方法详解
Feb 04 Javascript
easyui-datagrid特殊字符不能显示的处理方法
Apr 12 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
Apr 23 Javascript
Node.js如何实现注册邮箱激活功能 (常见)
Jul 23 Javascript
在vue组件中使用axios的方法
Mar 16 Javascript
webpack分离css单独打包的方法
Jun 12 Javascript
JavaScript设计模式之构造器模式(生成器模式)定义与用法实例分析
Jul 26 Javascript
layui复选框限制选择个数的方法
Sep 18 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源码分析之DZX1.5字符串截断函数cutstr用法
2015/06/17 PHP
PHP匿名函数和use子句用法实例
2016/03/16 PHP
简体中文转换繁体中文(实现代码)
2013/12/25 Javascript
浅析Node在构建超媒体API中的作用
2014/07/30 Javascript
jQuery实现可展开合拢的手风琴面板菜单
2015/09/15 Javascript
动态设置form表单的action属性的值的简单方法
2016/05/25 Javascript
js简单正则验证汉字英文及下划线的方法
2016/11/28 Javascript
基于Vue2.0的分页组件
2017/03/16 Javascript
vue移动UI框架滑动加载数据的方法
2018/03/12 Javascript
koa2实现登录注册功能的示例代码
2018/12/03 Javascript
Bootstrap 按钮样式与使用代码详解
2018/12/09 Javascript
vue 表单之通过v-model绑定单选按钮radio
2019/05/13 Javascript
vue中input的v-model清空操作
2019/09/06 Javascript
JavaScript缓动动画函数的封装方法
2020/11/25 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
2021/01/20 Vue.js
[47:10]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第二场 12.16
2020/12/18 DOTA
python使用os模块的os.walk遍历文件夹示例
2014/01/27 Python
Python THREADING模块中的JOIN()方法深入理解
2015/02/18 Python
Python作用域用法实例详解
2016/03/15 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
2016/06/23 Python
Python中创建字典的几种方法总结(推荐)
2017/04/27 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
2018/07/11 Python
python进行文件对比的方法
2018/12/24 Python
使用python3实现操作串口详解
2019/01/01 Python
python3正则提取字符串里的中文实例
2019/01/31 Python
Python之修改图片像素值的方法
2019/07/03 Python
Python json转字典字符方法实例解析
2020/04/13 Python
python使用smtplib模块发送邮件
2020/12/17 Python
应届生程序员求职信
2013/11/05 职场文书
小学教师师德反思
2014/02/03 职场文书
公司领导班子对照检查存在问题整改措施
2014/10/02 职场文书
2014年节能降耗工作总结
2014/12/11 职场文书
三年级上册科学教学计划
2015/01/21 职场文书
在职证明格式样本
2015/06/15 职场文书
中学政教处工作总结
2015/08/13 职场文书
python用tkinter开发的扫雷游戏
2021/06/01 Python