码迷,mamicode.com
首页 > Windows程序 > 详细

关于什么样的变量归window所有

时间:2018-09-22 21:13:14      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:建立   UNC   cti   log   efi   nbsp   func   window   def   

对于什么样的变量归window所有,两句话:

全局变量归window所有

未经声明便使用的变量归window所有

 

例子:

1.

function Foo() {
a = 6;
console.log(a);        //6       虽说a不在Foo的AO里,但ao里没有a,foo会向他父级索取
console.log(window.a);//6  a未经声明便赋值归window所有
}
Foo();

2.

function Foo() {
i=0;
var i=9;

console.log(i); //9

console.log(window.i);//undefined
}
Foo();

咋一看,window.i不是应该输出0吗,i=0呀,未经声明归window所有。但要怪就怪函数体里面有个var i 吧。

原因:

函数在执行时(Foo()),会建立一个活动对象,里面有一些属性。

{

形参:值

var 声明的变量:值

函数声明: 值

}

这个ao一开始的时候属性挂的值都是undefined,后来随着函数的执行,这些属性上也开始挂值。

争对本题:

开始:ao{i:undefined} --->ao{i:0}---->ao{i:9}--->console.log(i)//9

这样看i并没有挂到window上,当然如果函数里面没有i的声明,这个i便属于window

关于什么样的变量归window所有

标签:建立   UNC   cti   log   efi   nbsp   func   window   def   

原文地址:https://www.cnblogs.com/shiyuzuxia/p/9690929.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!