您好,欢迎访问一九零五行业门户网

关于JavaScript中name的意义冲突示例介绍_javascript技巧

在昨天的《javascript权威指南》学习笔记之十:ecmascript 5 增强的对象模型一文中,对于一段代码的调试出现了一个奇怪现象,现将源代码贴在下面:
复制代码 代码如下:
google中运行结果:
http://img.blog.csdn.net/20140529073008296?watermark/2/text/ahr0cdovl2jsb2cuy3nkbi5uzxqvdtaxmta0mzg0mw==/font/5a6l5l2t/fontsize/400/fill/i0jbqkfcma==/dissolve/70/gravity/center
这个结果是正确的,但是,改一个地方,结果就不同了
复制代码 代码如下:
运行结果:
这是为什么呢?就只是改了一个简单的变量名啊
问题出在了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的值的类型。
其它类似信息

推荐信息