js 函数中的 return+匿名函数


今天一个刚学js的朋友给了我一段代码问为什么方法不执行,代码如下:

代码如下:

function makefunc(x) { 
 return function (){ 
  return x; 
 } 

alert(makefunc(0)); 
 
结果是:function (){return x;}不是0

不是脚本写错了,只是没搞懂return,从当前函数退出,并从那个函数返回一个值。如果返回的是一个函数,那么返回的也是函数本身。 
可以这样修改上面的代码,就是alert(makefunc(0)()): 

 

如果想要执行alert(makefunc(0))返回的结果是0,可以这么改写;例如:

代码如下:

function makefunc(x) { 
 return (function (){ 
  return x; 
 })(); 

alert(makefunc(0)); 


这里有一个匿名函数, 

代码如下:

(function (){ 
 return x; 
})(); 


在第一个括号内是匿名函数,第二个括号用于调用该匿名函数,您可以在第二个括号中传入所需的参数。例如: 

代码如下:

(function( x , y){ 
 alert( x + y); 
})(2 ,3 ); 
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM