关于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 相关文章推荐
JSON 入门指南 想了解json的朋友可以看下
Aug 26 Javascript
JS的事件绑定深入认识
Jun 26 Javascript
微信小程序 网络API Websocket详解
Nov 09 Javascript
JavaScript中利用构造器函数模拟类的方法
Feb 16 Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
Mar 27 Javascript
bootstrap日期控件问题(双日期、清空等问题解决)
Apr 19 Javascript
BootStrap 导航条实例代码
May 18 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
Feb 13 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
May 23 jQuery
微信小程序入口场景的问题集合与相关解决方法
Jun 26 Javascript
vue通过video.js解决m3u8视频播放格式的方法
Jul 30 Javascript
vue.js的状态管理vuex中store的使用详解
Nov 08 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中与数组相关的函数
2007/03/22 PHP
PHP执行linux系统命令的常用函数使用说明
2010/04/27 PHP
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
2013/06/25 PHP
PHP实现财务审核通过后返现金额到客户的功能
2019/07/04 PHP
JavaScript与函数式编程解释
2007/04/27 Javascript
通过上下左右键和回车键切换光标实现代码
2013/03/08 Javascript
使用jQuery清空file文件域的解决方案
2013/04/12 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
jQuery ajaxForm()的应用
2016/10/14 Javascript
JS使用正则实现去掉字符串左右空格的方法
2016/12/27 Javascript
JQ图片文件上传之前预览功能的简单实例(分享)
2017/11/12 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
2018/05/29 Javascript
layui 弹出层值回传解决方式
2019/11/14 Javascript
[59:53]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第二场 3月6日
2021/03/11 DOTA
一个小示例告诉你Python语言的优雅之处
2014/07/04 Python
Python 登录网站详解及实例
2017/04/11 Python
NetworkX之Prim算法(实例讲解)
2017/12/22 Python
django认证系统实现自定义权限管理的方法
2018/07/16 Python
Python使用Selenium爬取淘宝异步加载的数据方法
2018/12/17 Python
解决Django中多条件查询的问题
2019/07/18 Python
PyTorch中反卷积的用法详解
2019/12/30 Python
PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)
2020/06/02 Python
解决keras backend 越跑越慢问题
2020/06/18 Python
Footshop罗马尼亚:最好的运动鞋选择
2019/09/10 全球购物
英国医生在线预约:Top Doctors
2019/10/30 全球购物
俄罗斯GamePark游戏商店网站:购买游戏、游戏机和配件
2020/03/13 全球购物
计算机专业毕业生的自我评价
2013/11/18 职场文书
公司接待方案
2014/03/08 职场文书
爱心捐款倡议书
2014/04/14 职场文书
2015年客服工作总结范文
2015/04/02 职场文书
2015年医生个人工作总结
2015/04/25 职场文书
2015年质检工作总结
2015/05/04 职场文书
2015年中职班主任工作总结
2015/05/25 职场文书
小学教师教学反思
2016/02/24 职场文书
python 三边测量定位的实现代码
2021/04/22 Python
通过T-SQL语句创建游标与实现数据库加解密功能
2022/03/16 SQL Server