手机版

介绍一个JavaScript中名字含义冲突的例子

时间:2021-11-07 来源:互联网 编辑:宝哥软件园 浏览:

昨天《Javascript权威指南》的学习笔记10:ECMAScript 5增强的对象模型,调试一段代码出现了一个奇怪的现象。现在源代码贴在下面:复制的代码如下: Script Type=' text/JavaScript ' function person(){ } var per=new person;object . defineperoperties(per,{ '昵称' : { value:'Tom ',writable:true },' age': { value:20,configurable:false,writable : false } });var o=object . GetownPropertyDescriptor(per,'昵称');alert(JSON . stringify(o));/脚本在Google中的运行结果:http://img.blog.csdn.net/20140529073008296? Mark/2/text/ahr0cdovl2jsb 2 cu3 nbi 5 uzxqvdtaxmta 0 mzg0mw==/font/5a 6l 52t/font size/400/fill/i0jbqkfcma==/溶解/70/重心这个结果是正确的,但是,更改一个地方,结果就会不一样。复制代码如下: Script Type=' text/JavaScript '函数person(){ } var per=new person;object . defineperoperties(per,{ '昵称' : { value:'Tom ',writable:true },' age': { value:20,configurable:false,writable : false } });var name=object . getowntpropertysdescriptor(per,'昵称');alert(JSON . stringify(name));/脚本运行结果:

这是为什么?我刚改了一个简单的变量名。问题出在名字上,但是我进进出出JS,不懂。我在网上没有找到任何信息。后来去请教一位兄弟,把问题放到了论坛上:http://bbs.csdn.net/topics/390799744? Page=1 # post-397474060,name是window属性,用来设置或者返回window的名称,数据类型是string。因为第一句是已经结束的函数Person(){},下面的代码可能在全局上下文中,这意味着您认为alert (JSON。string fy(name));是输出上面的var名称,但实际上可能是window.name.对于输出[对象对象],这种类型是名称值的类型。

版权声明:介绍一个JavaScript中名字含义冲突的例子是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。