d******k 发帖数: 28 | 1 http://javascript.info/tutorial/closures
当看到LexicalEnviroment/Scope Chain的时候,closure就完全清楚了。
quiz:下面的输出是什么?
//Note: y在func01前没有定义过
function func01() {
function func02(){
y = 10; //如果是var y=10,结果又是什么
console.log( "inner:"+y );
};
func02();
console.log("outer:"+ y );
}
func01();
console.log( "global:"+y ); |
m**u 发帖数: 541 | |
d******k 发帖数: 28 | 3 唉,躺着就想赚钱.
我贴张最关键的图吧, 你继续躺着... |
d*******r 发帖数: 3299 | |
h**********c 发帖数: 4120 | 5 looks like the abuse of goto' grand child
so on so forth longjmp |
z*y 发帖数: 1311 | 6 函数定义里套函数定义
这么老的老古董也被翻出来了? |
d******k 发帖数: 28 | 7 看来你还没有得到它。
这个Quiz的寓意是function不仅可以用closure抓到变量,还可以往global里创造变量。
【在 z*y 的大作中提到】 : 函数定义里套函数定义 : 这么老的老古董也被翻出来了?
|
d******k 发帖数: 28 | 8 看来你也还没有得到它。
这不是代码的jmp. 这是变量的寻找过程。
如果用jmp来比喻,也不是longjmp, 而是按顺序从内往外jmp.
【在 h**********c 的大作中提到】 : looks like the abuse of goto' grand child : so on so forth longjmp
|
c********l 发帖数: 8138 | 9 re
量。
【在 d******k 的大作中提到】 : 看来你还没有得到它。 : 这个Quiz的寓意是function不仅可以用closure抓到变量,还可以往global里创造变量。
|