function f1(){ n=999; function f2(){
alert(n);
} return f2; }var result =f1();
result();问个闭包的问题,为什么f1()必须赋值给变量后执行才有效?直接执行f1()产生不出任何效果或者给个参考技术文档连接也行,这方面概念模糊,谢谢
alert(n);
} return f2; }var result =f1();
result();问个闭包的问题,为什么f1()必须赋值给变量后执行才有效?直接执行f1()产生不出任何效果或者给个参考技术文档连接也行,这方面概念模糊,谢谢
result();
function f1(){ n=999; function f2(){
alert(n);
}return f2; }
(f1())();
//var result =f1();
//result();
</script>
上面那样也可以,因为f1返回的是函数指针
var result =f1();
result();
改成f1()();
或者f1里的return f2;改成f2();
n=999;
function f2(){
alert(n);
}
return f2;
}
f1()(); // 999
这种写法很诡异哦,三个四个设置更多的括号都是可能滴,呵呵