原来 JS 也支持跟 Lua 语意一样的内嵌函数的闭包概念
2006-05-19 19:07
661 查看
原来 JS 也支持跟 Lua 语意一样的内嵌函数的闭包概念。
我是从这里看来的:
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>
类似的代码在 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>
类似的代码在 python 中还没有发现有这个行为。
相关文章推荐
- 原来 JS 也支持跟 Lua 语意一样的内嵌函数的闭包概念
- JavaScript--我发现,原来你是这样的JS:函数表达式和闭包
- js闭包,匿名函数概念
- 从两个函数来学习js闭包的概念
- JS——坑2(函数不调用不执行,闭包)
- js使用闭包时,内部函数是直接访问外部函数的实际变量而非复制一份新变量
- PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
- JS身份证号码验证函数 支持带x的号码
- JS代码获取当前日期时支持IE,不兼容FF和chrome,解决这个问题,我们需要把获取时间的getYear()函数换成getFullYear()
- js关于函数和对象的概念
- js函数4-闭包
- JS闭包的概念
- JS代码获取当前日期时支持IE,不兼容FF和chrome,解决这个问题,我们需要把获取时间的getYear()函数换成getFullYear()
- js函数参数不支持默认值
- lua语言中的函数概念
- 怎么让 Lua 5.3.4 支持中文变量名和中文函数名
- Lua:函数闭包的方式实现面向对象
- Thin的DateChooser代码学习(关于js的函数参数为一个完整的函数以及“对象不支持此属性或方法”错误的解决)(原创,转载请声明)
- Js中的闭包与自执行函数