JavaScript 匿名函数的作用
在 WEB 开发中有时候有这样的需求:用 JavaScript 技术,我们要在一个函数 fun 中传递一个类型为函数的参数 b ,并且函数 b 又要带参数,该怎么办呢?且看下面的例子。
<script> function func(a,b) { alert(a);//你的业务逻辑 b();//运行函数 b } var c = 5; func(1,function(c) { c=c+5 alert(c); }); </script>
运行上面的例子可以知道,第二个 alert 打印出来的是 NaN 。及无法通过上面的方法传参。这时匿名函数就派上用场了。
<script> function func(a,b) { alert(a);//你的业务逻辑 b();//运行函数 b } var c = 5; func(1,(function(c) { return function() {//返回一个匿名函数作为参数 c=c+5 alert(c); } })(c)); </script>
这时就会2个弹窗提示,第一个是1,第二个是10。也许你会感到奇怪,为什么要在匿名函数再次返回一个函数。
<script> function func(a,b) { alert(a);//你的业务逻辑 b();//运行函数 b } var c = 5; func(1,(function(c) { c=c+5 alert(c); })(c)); </script>
可以看到会有2个弹窗提示,但第一个是 10,第二个是 1 。并且用 google chrome 的开发人员工具的控制台可以看到有如下错误:
(function(c) {
c=c+5
alert(c);
})(c)
在 func 函数中,在第一个括号内,是一个匿名函数;第二个括号,表示立即执行。
关于匿名函数可以参考这里。
相关推荐
xiaoge00 2019-12-21
meylovezn 2020-09-21
usepython 2020-05-28
举 2020-05-20
amazingbo 2020-02-26
牵手白首 2020-02-01
wklken的笔记 2020-01-30
sulindong0 2020-01-19
chinademon 2020-01-12
wyqwilliam 2020-01-02
Yellowpython 2020-01-08
JasonYeung 2019-12-28
NameCHC 2019-12-05
xcguoyu 2019-11-12
wyqwilliam 2019-11-05
banzhihuanyu 2019-11-01
codeAB 2019-10-26