匿名函数(回调函数)的理解思路
2015-08-18 22:45
796 查看
<script> //普通函数 /*function box(){ return 'abc' } window.alert(box());*/ /*匿名函数:就是没有给名称的函数或者名称被隐藏的函数; function(){ return 'abc'; } 单独使用会报错;就算能够运行,也不能够调用,因为没用函数名; */ /* //把匿名函数赋值给变量的做法 var box=function(){ return 'abc'; };//这是一个语句,所以结束会有一个分号; window.alert(box);//打印出的是box的整个函数体;*/ /* 第一步:先构造一个匿名函数 //function(){ return 'abc'; }*/ /* 第二步:函数要执行的是'XXX()'的形式;所以下面执行函数: function() {return 'abc';}(); 放在一行上是为了好看;换行不影响; 然而,这样并不能执行,执行控制台会报错;正常执行函数"XXX()"的括号 前是一个表达式;而此处的括号前是一个函数:function(){return 'abc';} 说要执行这个还得进行第三步; */ /* 第三步:给括号前的表达式加上(); (function(){return 'abc';})(); 形式:(匿名函数)();第一个括号装匿名函数;第二个括号执行; 这样就可以执行了;但是函数体return;看不到结果;可以写成 aler('abc'); 即(function(){alert('abc');})(); */ /* 由于函数一般是return来做返回的;所以上面的代码可以改成如下: 把匿名函数自我执行之后的值传给一个变量;然后打印 var box = (function(){ return 'abc'; })(); alert(box);//abc 当然也可以直接利用alert打印匿名函数自我执行之后的值 alert((function(){ return'abc'; })());//abc */ /* 第四步:自我执行匿名函数的传参 (function(age){ alert(age); })(100); //100 */ /*闭包:函数里面放函数; 1、一个普通函数里面放一个匿名函数; function box(){ return function(){ return 'abc'; } } alert(box); //执行结果function box(){ return function(){ return 'abc'; } }// function box(){ return function(){ return 'abc'; } } alert(box());// 执行结果function(){ return 'abc'; }// function box(){ return function(){ return 'abc'; } } alert(box()());//执行结果 abc */ /*另一种理解方法:借用第三方变量获得box函数的返回值 function(){return 'abc';} function box(){ return function(){ return 'abc'; } }; var b = box(); alert(b); 然后在利用b();去执行获得返回值;从而获得结果 abc function box(){ return function(){ return 'abc'; } }; var b = box(); alert(b()); */ </script>
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- 深入理解PHP之匿名函数
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- JavaScript拆分字符串时产生空字符的原因
- IE8开发人员工具教程(二)
- 在flex中执行一个javascript方法的简单方式
- Flex结合JavaScript读取本地路径的方法
- PowerShell中执行Javascript的方法示例
- javascript asp教程第六课-- response方法
- javascript asp教程More About Recordsets
- javascript asp教程第十二课---session对象
- javascript asp教程创建数据库连接