javascript中的return和闭包函数

复制代码 代码如下:

javascript中的return和闭包函数

function makefunc(x) {

return function (){

return x;

}

}

alert(makefunc(0));

其实不是不执行,只是朋友的意思这里alert出来的`应该是“0”,而不是function (){return x;}。

不是脚本写错了,只是没搞懂return,从当前函数退出,并从那个函数返回一个值。如果返回的是一个函数,那么返回的也是函数本身。

可以这样修改上面的代码,就是alert(makefunc(0)()):

复制代码 代码如下:

function makefunc(x) {

return (function (){

return x;

})();

}

alert(makefunc(0)());

如果要返回函数执行的结果那么首先要让这个函数执行,例如:

复制代码 代码如下:

function makefunc(x) {

return (function (){

return x;

})();

}

alert(makefunc(0));

这里有一个匿名函数,

复制代码 代码如下:

(function (){

return x;

})();

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

复制代码 代码如下:

(function( x , y){

alert( x + y);

})(2 ,3 );