javascript中的return和闭包函数浅析_javascript技巧

WBOY
Release: 2016-05-16 16:45:41
Original
1144 people have browsed it


高手绕道!这跟闭包本身没什么大的关系,也不知道怎么取标题,随便凑了个数,望见谅!

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

复制代码代码如下:

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 );
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!