首页 新闻 会员 周边 捐助

name可以获取到,为什么?

0
悬赏园豆:10 [已解决问题] 解决于 2015-12-20 22:50
(function(){
var name = "123";
var age = 123;
})();
console.log(name);
console.log(age);

按照我的理解,name和age都是匿名函数块中的内容,因此无法读取!

但是在控制台中我得到了name的值,这是为什么?

猜想,可能是name这个变量是不是把什么全局的东西给改掉了。如果改变name的名字就没有问题.....匿名函数块中难道有一个叫做name的全局属性?

xingoo的主页 xingoo | 小虾三级 | 园豆:711
提问于:2015-12-20 10:30
< >
分享
最佳答案
0
for(var p in window) {
    console.log(p);
}

可以看到window存在一个名为name的成员

收获园豆:10
逐影 | 小虾三级 |园豆:982 | 2015-12-20 16:31

看了下,window确实有一个自己的name属性。

出现我那个错误原因是因为:

我第一次试验的时候,name没有加var,所以变成了全局变量,导致window.name被赋值

第二次,我修改了name前加上了var,但是清楚浏览器缓存,并没有改变window.name的属性。

因此导致此后不关闭浏览器的前提下,name都是第一次赋予的值!

非常感谢提醒.....

xingoo | 园豆:711 (小虾三级) | 2015-12-20 22:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册