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 相关文章推荐
dojo 之基础篇(二)之从服务器读取数据
Mar 24 Javascript
javascript学习笔记(一)基础知识
Sep 30 Javascript
js实现div弹出层的方法
Nov 20 Javascript
CSS javascript 结合实现悬浮固定菜单效果
Aug 23 Javascript
js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
Oct 25 Javascript
vue2.0开发实践总结之入门篇
Dec 06 Javascript
JS实现微信弹出搜索框 多条件查询功能
Dec 13 Javascript
angular2组件中定时刷新并清除定时器的实例讲解
Aug 31 Javascript
vue 解决循环引用组件报错的问题
Sep 06 Javascript
js中自定义react数据验证组件实例详解
Oct 19 Javascript
webpack中如何加载静态文件的方法步骤
May 18 Javascript
Vue 开发必须知道的36个技巧(小结)
Oct 09 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
初探PHP5
2006/10/09 PHP
PHP+MYSQL会员系统的登陆即权限判断实现代码
2011/09/23 PHP
解析php中eclipse 用空格替换 tab键
2013/06/24 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
JS OOP包机制,类创建的方法定义
2009/11/02 Javascript
使用jQuery轻松实现Ajax的实例代码
2010/08/16 Javascript
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
qTip 基于JQuery的Tooltip插件[兼容性好]
2010/09/01 Javascript
jquery实现的一个导航滚动效果具体代码
2013/05/27 Javascript
JS鼠标滑过图片时切换图片实现思路
2013/09/12 Javascript
JavaScript—window对象使用示例
2013/12/09 Javascript
jQuery 滑动方法slideDown向下滑动元素
2014/01/16 Javascript
Angularjs 实现一个幻灯片示例代码
2016/09/08 Javascript
Vue.js -- 过滤器使用总结
2017/02/18 Javascript
浅谈jquery拼接字符串效率比较高的方法
2017/02/22 Javascript
mpvue项目中使用第三方UI组件库的方法
2018/09/30 Javascript
javascript面向对象三大特征之封装实例详解
2019/07/24 Javascript
python实现的简单RPG游戏流程实例
2015/06/28 Python
举例讲解Python中metaclass元类的创建与使用
2016/06/30 Python
Python使用cookielib模块操作cookie的实例教程
2016/07/12 Python
浅谈function(函数)中的动态参数
2017/04/30 Python
Python3 log10()函数简单用法
2019/02/19 Python
python输入错误后删除的方法
2019/10/12 Python
Python实现自动访问网页的例子
2020/02/21 Python
给ubuntu18安装python3.7的详细教程
2020/06/08 Python
canvas学习和滤镜实现代码
2018/08/22 HTML / CSS
芝加哥牛排公司:Chicago Steak Company
2018/10/31 全球购物
比较基础的php面试题及答案-填空题
2014/04/26 面试题
网游商务专员求职信
2013/10/15 职场文书
工程部主管岗位职责
2013/11/17 职场文书
信息工作经验交流材料
2014/05/28 职场文书
班级体育活动总结
2014/07/05 职场文书
暑假学习心得体会
2014/09/02 职场文书
2015年党员创先争优公开承诺书
2015/04/27 职场文书
立项申请报告范本
2015/05/15 职场文书