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 相关文章推荐
讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
Apr 12 Javascript
JQuery的Ajax请求实现局部刷新的简单实例
Feb 11 Javascript
JS实现根据文件字节数返回文件大小的方法
Aug 02 Javascript
深入理解选择框脚本[推荐]
Dec 13 Javascript
微信小程序 PHP后端form表单提交实例详解
Jan 12 Javascript
ES6入门教程之let和const命令详解
May 17 Javascript
微信小程序 选项卡的简单实例
May 24 Javascript
关于Vue Webpack2单元测试示例详解
Aug 14 Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
May 08 Javascript
vue微信分享出来的链接点开是首页问题的解决方法
Nov 28 Javascript
element ui table(表格)实现点击一行展开功能
Dec 04 Javascript
微信小程序实现折线图的示例代码
Jun 07 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 3行代码的分页算法(求起始页和结束页)
2009/10/21 PHP
php绘图之加载外部图片的方法
2015/01/24 PHP
php利用反射实现插件机制的方法
2015/03/14 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
2015/12/14 PHP
[原创]php实现 data url的图片生成与保存
2016/12/04 PHP
Laravel 自定命令以及生成文件的例子
2019/10/23 PHP
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
2008/11/03 Javascript
基于jquery的多功能软键盘插件
2012/07/25 Javascript
javascript实现的DES加密示例
2013/10/30 Javascript
js实现的复制兼容chrome和IE
2014/04/03 Javascript
ExtJS 刷新后如何默认选中刷新前最后一次选中的节点
2014/04/03 Javascript
jQuery中[attribute]选择器用法实例
2014/12/31 Javascript
Node.js的Web模板引擎ejs的入门使用教程
2016/06/06 Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
2016/06/16 Javascript
Windows系统下安装Node.js的步骤图文详解
2016/11/15 Javascript
Bootstrap select实现下拉框多选效果
2016/12/23 Javascript
浅谈Vue组件及组件的注册方法
2018/08/24 Javascript
JavaScript键盘事件响应顺序详解
2019/09/30 Javascript
Python时间获取及转换知识汇总
2017/01/11 Python
python+selenium实现163邮箱自动登陆的方法
2017/12/31 Python
python实现简易通讯录修改版
2018/03/13 Python
python sys,os,time模块的使用(包括时间格式的各种转换)
2018/04/27 Python
Python Unittest根据不同测试环境跳过用例的方法
2018/12/16 Python
python字符串中匹配数字的正则表达式
2019/07/03 Python
如何利用Python模拟GitHub登录详解
2019/07/15 Python
利用CSS3实现圆角的outline效果的教程
2015/06/05 HTML / CSS
Hotels.com爱尔兰:全球酒店预订
2017/02/24 全球购物
幼儿园中秋节活动反思
2014/02/16 职场文书
社区工作感言
2014/02/21 职场文书
《大江保卫战》教学反思
2014/04/11 职场文书
奥巴马就职演讲稿
2014/05/15 职场文书
2015年南京大屠杀纪念日活动总结
2015/03/24 职场文书
导游词之西湖雷峰塔
2019/09/18 职场文书
PyTorch 如何设置随机数种子使结果可复现
2021/05/12 Python
用JS写一个发布订阅模式
2021/11/07 Javascript
分享python函数常见关键字
2022/04/26 Python