关于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 相关文章推荐
JS 去除Array中的null值示例代码
Nov 20 Javascript
javascript 获取元素样式必杀技
May 04 Javascript
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
Aug 04 Javascript
JavaScript实现向OL列表内动态添加LI元素的方法
Mar 21 Javascript
js+html5获取用户地理位置信息并在Google地图上显示的方法
Jun 05 Javascript
JavaScript中使用指数方法Math.exp()的简介
Jun 15 Javascript
微信小程序  网络请求API详解
Oct 25 Javascript
Kotlin学习第一步 kotlin语法特性
May 25 Javascript
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
Aug 18 Javascript
Angular使用cli生成自定义文件、组件的方法
Sep 04 Javascript
JavaScript常见鼠标事件与用法分析
Jan 03 Javascript
js实现星星海特效的示例
Sep 28 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
2019年漫画销量排行榜:鬼灭登顶 海贼单卷制霸 尾田盛赞鬼灭
2020/03/08 日漫
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
浅谈php的优缺点
2015/07/14 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
2015/10/16 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
2020/05/26 PHP
浅谈php常用的7大框架的优缺点
2020/07/20 PHP
PHP连接SQL server数据库测试脚本运行实例
2020/08/24 PHP
JS 继承实例分析
2008/11/04 Javascript
基本jquery的控制tabs打开的数量的代码
2010/10/17 Javascript
利用JQuery的load函数动态加载其它页面的内容的实现代码
2010/12/14 Javascript
jQuery JSON的解析方式分享
2011/04/05 Javascript
快速解决jQuery与其他库冲突的方法介绍
2014/01/02 Javascript
jQuery中的val()示例应用
2014/02/26 Javascript
用js闭包的方法实现多点标注冒泡示例
2014/05/29 Javascript
jquery实现图片切换代码
2016/10/13 Javascript
jQuery中$.grep() 过滤函数 数组过滤
2016/11/22 Javascript
ES2015 Symbol 一种绝不重复的值
2016/12/25 Javascript
如何提高Dom访问速度
2017/01/05 Javascript
SpringMVC+bootstrap table实例详解
2017/06/02 Javascript
vue 内置过滤器的使用总结(附加自定义过滤器)
2018/12/11 Javascript
vue.js实现回到顶部动画效果
2019/07/31 Javascript
Vue父组件向子组件传值以及data和props的区别详解
2020/03/02 Javascript
JS实现可控制的进度条
2020/03/25 Javascript
python检测远程端口是否打开的方法
2015/03/14 Python
Python中列表和元组的相关语句和方法讲解
2015/08/20 Python
python输入错误密码用户锁定实现方法
2017/11/27 Python
Python基于socket模块实现UDP通信功能示例
2018/04/10 Python
用python标准库difflib比较两份文件的异同详解
2018/11/16 Python
TensorFlow查看输入节点和输出节点名称方式
2020/01/04 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
韩都衣舍天猫官方旗舰店:天猫女装销售总冠军
2017/10/10 全球购物
Lyle & Scott苏格兰金鹰官网:英国皇室御用品牌
2018/05/09 全球购物
综合办公室主任岗位职责
2014/04/13 职场文书
社会实践评语
2014/04/28 职场文书