3-9 作用域和闭包--解题
2017-11-06 本文已影响5人
留白_汉服vs插画


变量定义,函数声明都会提前。


这里alert(i)的时候,i是自由变量,往上父作用域找,是找到全局作用域,这时候已经是10了。执行完了再点,已经是10了。

这里是自执行函数,就是不用调用,只要定义完成,立刻执行的函数。
点击的时候,自由变量,还是在父级中找。第7行函数中的i(在9行),往上找,就是4的i,而4中的i,就是定义时候,12传进去的i。


上面代码解析:定义了一个闭包,封装变量,收敛权限。16行,传入10,_List 还是空的,没有10,所以indexOf(10) 不存在,执行8行,返回true。第二次的时候,检查到10的索引为0,所以返回false。以下同理。
变量声明时候,_下划线表示私有。