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 相关文章推荐
基于jQuery的图片剪切插件
Aug 03 Javascript
js性能优化 如何更快速加载你的JavaScript页面
Mar 17 Javascript
js与jquery获取父级元素,子级元素,兄弟元素的实现方法
Jan 09 Javascript
jQuery插件制作的实例教程
May 16 Javascript
jQuery实现导航回弹效果
Feb 27 Javascript
微信小程序之发送短信倒计时功能
Aug 30 Javascript
vue将单页面改造成多页面应用的方法
Nov 25 Javascript
基于vue.js组件实现分页效果
Dec 29 Javascript
在node中使用jwt签发与验证token的方法
Apr 03 Javascript
jQuery鼠标滑过横向时间轴样式(代码详解)
Nov 01 jQuery
微信小程序实现一个简单swiper代码实例
Dec 30 Javascript
JavaScript实现单点登录的示例
Sep 23 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
Windows下安装Memcached的步骤说明
2010/04/25 PHP
php 搜索框提示(自动完成)实例代码
2012/02/05 PHP
Yii2下点击验证码的切换实例代码
2017/03/14 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
JavaScript 调试器简介
2009/02/21 Javascript
Javascript attachEvent传递参数的办法
2009/12/14 Javascript
javascript 传统事件模型构造的事件监听器实现代码
2010/05/31 Javascript
文本框输入时 实现自动提示(像百度、google一样)
2012/04/05 Javascript
web开发人员学习jQuery的6大理由及jQuery的优势介绍
2013/01/03 Javascript
js实现可拖动DIV的方法
2013/12/17 Javascript
JS获取节点的兄弟,父级,子级元素的方法
2014/01/09 Javascript
jQuery 1.9.1源码分析系列(十五)动画处理之缓动动画核心Tween
2015/12/03 Javascript
JavaScript基础知识及常用方法总结
2016/01/10 Javascript
基于JavaScript短信验证码如何实现
2016/01/24 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
2016/04/15 Javascript
jQuery插件easyUI实现通过JS显示Dialog的方法
2016/09/16 Javascript
JS验证不重复验证码
2017/02/10 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
2017/04/10 Javascript
js统计页面上每个标签的数量实例代码
2018/05/29 Javascript
优化Vue中date format的性能详解
2020/01/13 Javascript
[04:44]DOTA2 2017全国高校联赛视频回顾
2017/08/21 DOTA
python实现颜色rgb和hex相互转换的函数
2015/03/19 Python
再谈Python中的字符串与字符编码(推荐)
2016/12/14 Python
Python获取某一天是星期几的方法示例
2017/01/17 Python
Python不使用int()函数把字符串转换为数字的方法
2018/07/09 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
2019/02/11 Python
python 在某.py文件中调用其他.py内的函数的方法
2019/06/25 Python
python画图——实现在图上标注上具体数值的方法
2019/07/08 Python
python实现学生成绩测评系统
2020/06/22 Python
Hunkemöller西班牙:欧洲最大的内衣连锁店
2018/08/15 全球购物
Shein英国:女性时尚网上商店
2019/04/10 全球购物
某同学的自我鉴定范文
2013/12/26 职场文书
教师绩效考核方案
2014/01/21 职场文书
甜品蛋糕店创业计划书范文
2014/02/06 职场文书
2015年暑期社会实践总结
2015/07/13 职场文书