关于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 相关文章推荐
IE中radio 或checkbox的checked属性初始状态下不能选中显示问题
Jul 25 Javascript
AlertBox 弹出层信息提示框效果实现步骤
Oct 11 Javascript
JavaScript中的Math.LN2属性用法详解
Jun 12 Javascript
浅析在javascript中创建对象的各种模式
May 06 Javascript
12个非常实用的JavaScript小技巧【推荐】
May 18 Javascript
canvas实现简易的圆环进度条效果
Feb 28 Javascript
深入理解Angular中的依赖注入
Jun 26 Javascript
express如何使用session与cookie的方法
Jan 30 Javascript
使用express+multer实现node中的图片上传功能
Feb 02 Javascript
Node.js实现注册邮箱激活功能的方法示例
Mar 23 Javascript
使用vue.js在页面内组件监听scroll事件的方法
Sep 11 Javascript
JS函数内部属性之arguments和this实例解析
Oct 07 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
mysqli_set_charset和SET NAMES使用抉择及优劣分析
2013/01/13 PHP
PHP+Javascript实现在线拍照功能实例
2015/07/18 PHP
Thinkphp5.0 框架Model模型简单用法分析
2019/10/11 PHP
php解析非标准json、非规范json的方式实例
2020/12/10 PHP
JavaScript判断一个URL链接是否有效的实现方法
2011/10/08 Javascript
五段实用的js高级技巧
2011/12/20 Javascript
jquery中的on方法使用介绍
2013/12/29 Javascript
js通过iframe加载外部网页的实现代码
2015/04/05 Javascript
基于javascript实现tab切换特效
2016/03/29 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
2016/06/06 Javascript
实例详解jQuery的无new构建
2016/08/02 Javascript
jQuery中常用动画效果函数(日常整理)
2016/09/17 Javascript
Zepto实现密码的隐藏/显示
2017/04/07 Javascript
JavaScript满天星导航栏实现方法
2018/03/08 Javascript
vue父组件异步获取数据传给子组件的方法
2018/07/26 Javascript
获取layer.open弹出层的返回值方法
2018/08/20 Javascript
Vue-router 切换组件页面时进入进出动画方法
2018/09/01 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
2019/08/27 Javascript
推荐几个不错的console调试技巧实现
2019/12/20 Javascript
Element Backtop回到顶部的具体使用
2020/07/27 Javascript
django 自定义过滤器的实现
2019/02/26 Python
Win系统PyQt5安装和使用教程
2019/12/25 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
2020/02/07 Python
pyautogui自动化控制鼠标和键盘操作的步骤
2020/04/01 Python
Python 防止死锁的方法
2020/07/29 Python
css3 box-shadow阴影(外阴影与外发光)图示讲解
2017/08/11 HTML / CSS
10 套华丽的CSS3 按钮小结
2012/10/03 HTML / CSS
英国123鲜花网站:123 Flowers
2019/07/07 全球购物
Vinatis德国:法国领先的葡萄酒邮购公司
2020/09/07 全球购物
工程专业求职自荐书范文
2014/02/18 职场文书
保密工作责任书
2014/04/16 职场文书
厉行勤俭节约倡议书
2014/05/16 职场文书
三八妇女节超市活动方案
2014/08/18 职场文书
2014年纪检监察工作总结
2014/11/11 职场文书
ubuntu如何搭建vsftpd服务器
2022/12/24 Servers