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 相关文章推荐
bgsound 背景音乐 的一些常用方法及特殊用法小结
May 11 Javascript
js控制CSS样式属性语法对照表
Dec 11 Javascript
JS在textarea光标处插入文本的小例子
Mar 22 Javascript
AngularJS实现Input格式化的方法
Nov 07 Javascript
JavaScript仿支付宝6位数字密码输入框
Dec 29 Javascript
JavaScript正则表达式exec/g实现多次循环用法示例
Jan 17 Javascript
jQuery排序插件tableSorter使用方法
Feb 10 Javascript
vue v-on监听事件详解
May 17 Javascript
vue语法之拼接字符串的示例代码
Oct 25 Javascript
React中使用async validator进行表单验证的实例代码
Aug 17 Javascript
微信小程序 wx:for遍历循环使用实例解析
Sep 09 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
Dec 14 Vue.js
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调用Twitter的RSS的实现代码
2010/03/10 PHP
PHP解密Unicode及Escape加密字符串
2015/05/17 PHP
Centos7 Yum安装PHP7.2流程教程详解
2019/07/02 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
2020/02/06 PHP
jQuery 对Select的操作备忘记录
2011/07/04 Javascript
cument.execCommand()用法深入理解
2012/12/04 Javascript
JavaScript+CSS控制打印格式示例介绍
2014/01/07 Javascript
jQuery中odd选择器的定义和用法
2014/12/23 Javascript
jQuery实现DIV层收缩展开的方法
2015/02/27 Javascript
深入浅析JavaScript中对事件的三种监听方式
2015/09/29 Javascript
解决vue2中使用axios http请求出现的问题
2018/03/05 Javascript
vue中实现图片和文件上传的示例代码
2018/03/16 Javascript
Koa项目搭建过程详细记录
2018/04/12 Javascript
JavaScript常用工具函数汇总(浏览器环境)
2020/09/17 Javascript
使用webpack和rollup打包组件库的方法
2021/02/25 Javascript
Python 数据库操作 SQLAlchemy的示例代码
2019/02/18 Python
没编程基础可以学python吗
2020/06/17 Python
深入了解NumPy 高级索引
2020/07/24 Python
python中yield的用法详解
2021/01/13 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
2021/01/27 Python
python 制作本地应用搜索工具
2021/02/27 Python
美国机场停车位预订:About Airport Parking
2018/03/26 全球购物
北美领先的智能产品购物网站:Wellbots
2018/06/11 全球购物
享受加州生活方式的时尚舒适:XCVI
2018/07/09 全球购物
一道SQL面试题
2012/12/31 面试题
银行营业厅大堂经理岗位职责
2014/01/06 职场文书
放飞中国梦演讲稿
2014/04/23 职场文书
教师工作自我鉴定范文
2014/09/14 职场文书
老兵退伍标语
2014/10/07 职场文书
2014年财务人员工作总结
2014/11/11 职场文书
2014年销售部工作总结
2014/12/01 职场文书
投标邀请书范本
2015/02/02 职场文书
保险内勤岗位职责
2015/04/13 职场文书
教师读书笔记
2015/06/29 职场文书
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
2021/05/27 Servers
SQL中的三种去重方法小结
2021/11/01 SQL Server