关于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 DOM 学习第三章 内容表格
Feb 19 Javascript
js 事件处理函数间的Event物件是否全等
Apr 08 Javascript
js实现图片拖动改变顺序附图
May 13 Javascript
JavaScript获取Url里的参数
Dec 18 Javascript
SpringMVC返回json数据的三种方式
Dec 10 Javascript
Bootstrap轮播图学习使用
Feb 10 Javascript
详解AngularJs HTTP响应拦截器实现登陆、权限校验
Apr 11 Javascript
jQuery 实现批量提交表格多行数据的方法
Aug 09 jQuery
angular 用Observable实现异步调用的方法
Dec 27 Javascript
LayUI数据接口返回实体封装的例子
Sep 12 Javascript
JavaScript实现字符串与HTML格式相互转换
Mar 17 Javascript
vue.js封装switch开关组件的操作
Oct 26 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
在字符串中把网址改成超级链接
2006/10/09 PHP
PHP实现网上点歌(二)
2006/10/09 PHP
php MySQL与分页效率
2008/06/04 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
2014/11/18 PHP
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
PHP获取远程http或ftp文件的md5值的方法
2019/04/15 PHP
javascript instanceof 与typeof使用说明
2010/01/11 Javascript
分页栏的web标准实现
2011/11/01 Javascript
jQuery的Ajax的自动完成功能控件简要说明
2013/02/22 Javascript
javascript实现限制上传文件大小
2015/02/06 Javascript
JAVASCRIPT代码编写俄罗斯方块网页版
2015/11/26 Javascript
使用jQuery制作基础的Web图片轮播效果
2016/04/22 Javascript
微信小程序 连续旋转动画(this.animation.rotate)详解
2017/04/07 Javascript
浅析Visual Studio Code断点调试Vue
2018/02/27 Javascript
Angular中sweetalert弹框的基本使用教程
2018/07/22 Javascript
详解vue2.6插槽更新v-slot用法总结
2019/03/09 Javascript
微信小程序JS加载esmap地图的实例详解
2019/09/04 Javascript
vue中touch和click共存的解决方式
2020/07/28 Javascript
[53:29]完美世界DOTA2联赛循环赛 DM vs Matador BO2第二场 11.04
2020/11/05 DOTA
python学生信息管理系统(初级版)
2018/10/17 Python
python创造虚拟环境方法总结
2019/03/04 Python
python使用Plotly绘图工具绘制气泡图
2019/04/01 Python
Spring @Enable模块驱动原理及使用实例
2020/06/23 Python
Python之京东商品秒杀的实现示例
2021/01/06 Python
html5中地理位置定位api接口开发应用小结
2013/01/04 HTML / CSS
HTML5之SVG 2D入门8—文档结构及相关元素总结
2013/01/30 HTML / CSS
Calzedonia美国官网:意大利风格袜子、打底裤和沙滩装
2018/07/19 全球购物
毕业生自我鉴定
2013/11/05 职场文书
商务英语大学生职业生涯规划书范文
2014/01/01 职场文书
公司会计岗位职责
2014/02/13 职场文书
入党自我鉴定
2014/03/25 职场文书
保护环境建议书作文400字
2015/09/14 职场文书
2019求职信大礼包
2019/05/15 职场文书
python实现简单聊天功能
2021/07/07 Python
Python docx库删除复制paragraph及行高设置图片插入示例
2022/07/23 Python
el-table-column 内容不自动换行的解决方法
2022/08/14 Vue.js