1  /  1  页   1 跳转 查看:1330

javascript之内嵌函数

javascript之内嵌函数

文/AganCN  出处/博客园

你了解javascript的内嵌函数吗?我们不凡先做个小测试,你认为下面的代码运行结果会是什么呢?
<script>
function outerFn(firNum)
{
    var firNum=firNum;
    firNum+=firNum;
    function innerFn(secNum)
    {
        firNum+=secNum;
        return firNum;
    }
    return innerFn;
}

function test()
{
var inNum = prompt('请输入一个数字',0);
while(isNaN(inNum))
{
    inNum = prompt('请输入一个数字',0);
}
var outerRet = outerFn(parseInt(inNum));//call outer function
var lastRet = outerRet(parseInt(inNum));//call inner function
var userRet = prompt('请输入你认为正确的结果数字',0);
if(userRet==lastRet)
{alert('恭喜你答对,你已经了解内嵌函数。');}
else
{
    alert('很遗憾,你打错,正确答案是:'+lastRet+',建议你了解内嵌函数。')
}
}
</script>

运行这段脚本正确结果是30。

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [javascript] 的这些文章也感兴趣:

用JavaScript脚本将当地时间转换成其它时区
Javascript模拟的DOS窗口
JavaScript极速狂飙:组合拼接字符串的效率
在网页中控制wmplayer播放器
javascript实现yield
Mootools-1.2 学习笔记之ajax基本操作
在JavaScript中实现命名空间
HTML页面如何象asp一样接受参数
使用Javascript修改客户端注册表
Javascript面向对象编程
 

回复:javascript之内嵌函数

javascript提供很多内置函数给大家调用,像alert(),call(),sort()等等,也可以自定义函数,如下面代码
function myFirstFn()
{
return "this is my first Function";
}

上面代码定义了一个很简单的函数,调用myFirstFn返回一个字符串"this is my first Function",简单函数一看就会,很容易理解。复杂一点的内嵌函数该如何定义和使用呢?我们从上面测试的例子来说吧,outerFn是外层函数,innerFn是内嵌函数,上面例子中调用外层函数时返回的是内嵌函数,其实就是下面这样

function outerFn(firNum)//outer function
{
var firNum=firNum;
firNum+=firNum;
return function innerFn(secNum)//inner function
{
  firNum+=secNum;
  return firNum;
}
}
当调用outerFn(aNum)时,将返回innerFn这个函数,因此最终的结果其实是aNum+aNum+aNum.

内嵌函数使函数可以作为一般的数据使用,可以作为参数传给其他函数,内嵌函数可以使用外部函数的定义的变量,在外部函数以外是不可见的,内嵌函数必须定义在外部函数的最顶级,不能放在if和循环(while)块中。

以上是小弟对内嵌函数的一些理解,欢迎大家拍砖板。
 
1  /  1  页   1 跳转

快速回复帖子

标题
禁用 URL 识别
禁用表情
禁用 Discuz!NT 代码
使用个人签名
  [完成后可按 Ctrl+Enter 无刷新发布]  

版权所有 拼吾爱程序人生    Total Unique Visitors:

web counter

Powered by Discuz!NT 2.1.202   Copyright © 2001-2008 Comsenz Inc. 鄂ICP备07500843号
返顶部