js 函数中的 return+匿名函数

简介: 今天一个刚学js的朋友给了我一段代码问为什么方法不执行,代码如下:代码如下:function makefunc(x) {  return function (){   return x;  } } alert(makefunc(0));  结果是:function (){return x;}不是0不是脚本写错了,只是没搞懂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 ); 
 
目录
相关文章
|
19天前
|
JavaScript
|
1天前
|
JavaScript
变量和函数提升(js的问题)
变量和函数提升(js的问题)
|
2天前
|
存储 JavaScript 前端开发
每日一道javascript面试题(九)函数的参数可以和函数体中的变量重名吗
每日一道javascript面试题(九)函数的参数可以和函数体中的变量重名吗
|
2天前
|
JavaScript 前端开发
每日一道javascript面试题(七)你真的知道箭头函数吗
每日一道javascript面试题(七)你真的知道箭头函数吗
|
6天前
|
JavaScript 前端开发
js开发:请解释什么是ES6的Generator函数,以及它的用途。
ES6的Generator函数是暂停/恢复功能的特殊函数,利用yield返回多个值,适用于异步编程和流处理,解决了回调地狱问题。例如,一个简单的Generator函数可以这样表示: ```javascript function* generator() { yield 'Hello'; yield 'World'; } ``` 创建实例后,通过`.next()`逐次输出"Hello"和"World",展示其暂停和恢复的特性。
15 0
|
13天前
|
缓存 JavaScript 前端开发
js的入口函数,入口函数的作用
js的入口函数,入口函数的作用
15 4
|
18天前
|
JavaScript 前端开发
JS的入口函数,并讲解入口函数的作用
JS的入口函数,并讲解入口函数的作用
9 0
|
JavaScript 前端开发 开发者
JavaScript 匿名函数、模块模式、闭包、命名空间、创建构造器(类)、继承
今天无论是在浏览器中还是在浏览器外,JavaScript世界正在经历翻天覆地地变化。如果我们谈论脚本加载、客户端的MVC框架、压缩器、AMD、Common.js还有Coffeescript……只会让你的脑子发昏。
799 0
|
2月前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
28 0