javascript中的return和闭包函数浅析


Posted in Javascript onJune 06, 2014

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

今天一个刚学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 );
Javascript 相关文章推荐
javascript 简单抽屉效果的实现代码
Mar 09 Javascript
jquery获取下拉列表的值为null的解决方法
Mar 18 Javascript
jquery的冒泡事件的阻止与允许(三种实现方法)
Feb 01 Javascript
Jquery chosen动态设置值实例介绍
Aug 08 Javascript
使用变量动态设置js的属性名
Oct 19 Javascript
基于replaceChild制作简单的吞噬特效
Sep 21 Javascript
AngularJS中的指令全面解析(必看)
May 20 Javascript
前端 Vue.js 和 MVVM 详细介绍
Dec 29 Javascript
微信小程序 数据交互与渲染实例详解
Jan 21 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
Sep 13 Javascript
分享ES6的7个实用技巧
Jan 18 Javascript
微信小程序利用button控制条件标签的变量问题
Mar 15 Javascript
seaJs的模块定义和模块加载浅析
Jun 06 #Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
Jun 06 #Javascript
javascript中加号(+)操作符的一些神奇作用
Jun 06 #Javascript
使用GruntJS构建Web程序之合并压缩篇
Jun 06 #Javascript
Javascript动态引用CSS文件的2种方法介绍
Jun 06 #Javascript
jquery 隐藏与显示tr标签示例代码
Jun 06 #Javascript
Node.js中对通用模块的封装方法
Jun 06 #Javascript
You might like
php中time()和mktime()方法的区别
2013/09/28 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
2019/04/10 PHP
javascript利用控件对windows的操作实现原理与应用
2012/12/23 Javascript
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
jQuery焦点图切换简易插件制作过程全纪录
2014/08/27 Javascript
JavaScript中的setMilliseconds()方法使用详解
2015/06/11 Javascript
异步JavaScript编程中的Promise使用方法
2015/07/28 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
2016/10/28 Javascript
jQuery实现三级联动效果
2017/03/02 Javascript
详解Angular 4.x NgTemplateOutlet
2017/05/24 Javascript
JavaScript数组排序reverse()和sort()方法详解
2017/12/24 Javascript
nodejs 最新版安装npm 的使用详解
2018/01/18 NodeJs
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
2019/09/03 Javascript
Node.JS用纯JavaScript生成图片或滑块式验证码功能
2019/09/12 Javascript
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
[31:29]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第一场 12.20
2020/12/23 DOTA
python中readline判断文件读取结束的方法
2014/11/08 Python
python 中的divmod数字处理函数浅析
2017/10/17 Python
http请求 request失败自动重新尝试代码示例
2018/01/25 Python
TensorFlow深度学习之卷积神经网络CNN
2018/03/09 Python
Python聊天室程序(基础版)
2018/04/01 Python
python逆序打印各位数字的方法
2018/06/25 Python
对numpy中的数组条件筛选功能详解
2018/07/02 Python
Python collections模块使用方法详解
2019/08/28 Python
详解Django将秒转换为xx天xx时xx分
2019/09/27 Python
Python随机数函数代码实例解析
2020/02/09 Python
全球最大最受欢迎的旅游社区:Tripadvisor
2017/11/03 全球购物
Myprotein俄罗斯官网:欧洲第一运动营养品牌
2019/05/05 全球购物
公司经理聘任书
2014/03/29 职场文书
协商一致解除劳动合同协议书
2014/09/14 职场文书
交警作风整顿剖析材料
2014/10/11 职场文书
乡镇2014法制宣传日活动总结
2014/11/01 职场文书
2014年乡镇个人工作总结
2014/12/03 职场文书
2015年学校食堂工作总结
2015/04/22 职场文书
2016新教师培训心得体会范文
2016/01/08 职场文书
创业项目大全(适合在家创业的项目)
2019/08/15 职场文书