原来 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 中还没有发现有这个行为。