关于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 相关文章推荐
[HTML/CSS/Javascript]WWTJS
Sep 25 Javascript
javascript prototype,executing,context,closure
Dec 24 Javascript
浅谈tudou土豆网首页图片延迟加载的效果
Jun 23 Javascript
javascript:void(0)使用探讨
Aug 27 Javascript
jQuery插件实现表格隔行换色且感应鼠标高亮行变色
Sep 22 Javascript
AngularJS快速入门
Apr 02 Javascript
解决jquery实现的radio重新选中的问题
Jul 03 Javascript
js实现TAB切换对应不同颜色的代码
Aug 31 Javascript
jquery仿京东侧边栏导航效果
Mar 02 Javascript
node.js + socket.io 实现点对点随机匹配聊天
Jun 30 Javascript
js 实现watch监听数据变化的代码
Oct 13 Javascript
微信小程序中使用 async/await的方法实例分析
May 06 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编写一个简单的路由类
2011/04/13 PHP
codeigniter教程之多文件上传使用示例
2014/02/11 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
2015/12/22 PHP
PHP邮箱验证示例教程
2016/06/01 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
PHP实现简单注册登录系统
2020/12/28 PHP
flash调用js中的方法,让js传递变量给flash的办法及思路
2013/08/07 Javascript
通过复制Table生成word和excel的javascript代码
2014/01/20 Javascript
JQuery EasyUI 日期控件如何控制日期选择区间
2014/05/05 Javascript
jQuery实现的图片分组切换焦点图插件
2015/01/06 Javascript
Bootstrap登陆注册页面开发教程
2016/07/12 Javascript
关于JavaScript中事件绑定的方法总结
2016/10/26 Javascript
Vue制作Todo List网页
2017/04/26 Javascript
JS实现数组按升序及降序排列的方法
2017/04/26 Javascript
浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预
2017/06/25 Javascript
Angular弹出模态框的两种方式
2017/10/19 Javascript
详解node.js的http模块实例演示
2018/07/12 Javascript
JS canvas绘制五子棋的棋盘
2020/05/28 Javascript
微信小程序使用 vant Dialog组件的正确方式
2020/02/21 Javascript
JavaScript实现烟花绽放动画效果
2020/08/04 Javascript
微信小程序实现多行文字滚动
2020/11/18 Javascript
Python中的测试模块unittest和doctest的使用教程
2015/04/14 Python
Python中Numpy包的安装与使用方法简明教程
2018/07/03 Python
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
HTML5 textarea高度自适应的两种方案
2020/04/08 HTML / CSS
家用个人磨皮机:Trophy Skin
2017/03/30 全球购物
新西兰珠宝品牌:Michael Hill
2017/09/16 全球购物
追悼会上的答谢词
2014/01/10 职场文书
读书演讲主持词
2014/03/18 职场文书
葬礼司仪主持词
2014/03/31 职场文书
竞聘上岗演讲
2014/05/19 职场文书
大学生思想道德自我评价
2015/03/09 职场文书
早上好问候语大全
2015/11/10 职场文书
转变工作作风心得体会
2016/01/23 职场文书
python 管理系统实现mysql交互的示例代码
2021/12/06 Python
Navicat Premium自定义 sql 标签的创建方式
2022/09/23 数据库