javascript之内嵌函数篇


你了解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>
继续看
你对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)块中。
以上是小弟对内嵌函数的一些理解,欢迎大家拍砖板。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值