关于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 相关文章推荐
node在两个div之间移动,用ztree实现
Mar 06 Javascript
JS获取DropDownList的value值与text值的示例代码
Jan 07 Javascript
JS获取文本框,下拉框,单选框的值的简单实例
Feb 26 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
Mar 27 Javascript
JS实现简单路由器功能的方法
May 27 Javascript
JavaScript 封装一个tab效果源码分享
Sep 15 Javascript
使用JQuery选择HTML遍历函数的方法
Sep 17 Javascript
在使用JSON格式处理数据时应该注意的问题小结
May 20 Javascript
JavaScript实现离开页面前提示功能【附jQuery实现方法】
Sep 26 jQuery
解决bootstrap中下拉菜单点击后不关闭的问题
Aug 10 Javascript
js实现数字从零慢慢增加到指定数字示例
Nov 07 Javascript
vue el-table实现行内编辑功能
Dec 11 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
一条久听不愿放下的DIY森海MX500,三言两语话神奇
2021/03/02 无线电
落伍首发 php+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
2006/12/16 PHP
php上传图片获取路径及给表单字段赋值的方法
2016/01/23 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
jQuery.fn和jQuery.prototype区别介绍
2013/10/05 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
2014/06/30 Javascript
JavaScript原生对象之Number对象的属性和方法详解
2015/03/13 Javascript
jQuery使用addClass()方法给元素添加多个class样式
2015/03/26 Javascript
在React框架中实现一些AngularJS中ng指令的例子
2016/03/06 Javascript
Bootstrap每天必学之按钮(Button)插件
2016/04/25 Javascript
网页前端登录js按Enter回车键实现登陆的两种方法
2016/05/10 Javascript
Seajs是什么及sea.js 由来,特点以及优势
2016/10/13 Javascript
js简单正则验证汉字英文及下划线的方法
2016/11/28 Javascript
MUI 解决动态列表页图片懒加载再次加载不成功的bug问题
2017/04/13 Javascript
Javascript实现倒计时时差效果
2017/05/18 Javascript
jQuery扇形定时器插件pietimer使用方法详解
2017/07/18 jQuery
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
2017/08/17 jQuery
微信小程序实现基于三元运算验证手机号/姓名功能示例
2019/01/19 Javascript
JS判断两个数组或对象是否相同的方法示例
2019/02/28 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
2019/09/12 Javascript
关于vue利用postcss-pxtorem进行移动端适配的问题
2019/11/20 Javascript
vue 动态表单开发方法案例详解
2019/12/02 Javascript
Python基于OpenCV库Adaboost实现人脸识别功能详解
2018/08/25 Python
python实现本地图片转存并重命名的示例代码
2018/10/27 Python
Python实现查找最小的k个数示例【两种解法】
2019/01/08 Python
Django框架实现的分页demo示例
2019/05/25 Python
Win10 安装PyCharm2019.1.1(图文教程)
2019/09/29 Python
Python 线程池用法简单示例
2019/10/02 Python
使用 django orm 写 exists 条件过滤实例
2020/05/20 Python
Pycharm学生免费专业版安装教程的方法步骤
2020/09/24 Python
师范生自我鉴定
2014/03/20 职场文书
委托书样本
2014/04/02 职场文书
中学生操行评语
2014/04/24 职场文书
争先创优演讲稿
2014/09/15 职场文书
go设置多个GOPATH的方式
2021/05/05 Golang
JavaScript实例 ODO List分析
2022/01/22 Javascript