原来 JS 也支持跟 Lua 语意一样的内嵌函数的闭包概念
原来 JS 也支持跟 Lua 语意一样的内嵌函数的闭包概念。
我是从这里看来的:
http://blog.dreambrook.com/soloist/archive/2005/03/13/526.aspx
在 JS 里面验证了一下,结果相同。
类似的代码在 python 中还没有发现有这个行为。
我是从这里看来的:
http://blog.dreambrook.com/soloist/archive/2005/03/13/526.aspx
在 JS 里面验证了一下,结果相同。
<SCRIPT LANGUAGE="JavaScript">
<!--
function x(n)
{
function y()
{
function inner1()
{
alert(n);
}
function inner2()
{
n = n + 1;
}
return [inner1, inner2];
}
return y;
}
a = x(3);
farray = a();
f1 = farray[0];
f2 = farray[1];
f1();
f2();
f1();
farray2 = a();
g1 = farray2[0];
g2 = farray2[1];
g1();
g2();
f1();
//-->
</SCRIPT>
<!--
function x(n)
{
function y()
{
function inner1()
{
alert(n);
}
function inner2()
{
n = n + 1;
}
return [inner1, inner2];
}
return y;
}
a = x(3);
farray = a();
f1 = farray[0];
f2 = farray[1];
f1();
f2();
f1();
farray2 = a();
g1 = farray2[0];
g2 = farray2[1];
g1();
g2();
f1();
//-->
</SCRIPT>
类似的代码在 python 中还没有发现有这个行为。