前端 - Javascript为什么要创造匿名函数
伊谢尔伦
伊谢尔伦 2017-04-11 09:08:46
[JavaScript讨论组]

我知道匿名函数用到的一些场景,比如定义函数的时候用到了

function functionName() {
  //some code 
}

//使用匿名函数来定义
var f = function() {
  //some code
}

但是我不知道JS为什么要创建匿名函数这个东西。

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(5)
大家讲道理

一个函数之所以要有名字,是为了可以在后续重复使用。

但是,如果一个函数只用一次,那么就没有必要给它名字了。

并且,多一个名字就会多声明一个无用的变量,对命名空间造成不必要的浪费。简洁,一向是编程的一个重要原则。

不只函数,像下面的代码:

var location = getLocation(a, b);
var x = location.getX();
print(x);

里面的x也是没有必要的。最好直接写成这样:

print(location.getX());
阿神
[].forEach((item) => {
    // do some stuff...
});

有些场景用起来方便。

伊谢尔伦

匿名函数最常见的用途是作为callback函数参数,这种时候不需要名字,用匿名函数比较方便。还有就是直接执行的函数,用于作用域隔离。

迷茫

比如做了一个匿名函数,在不需要多添加一个函数的时候,可以这样做:

function add2(x){
    var r = x+2;
    console.log(r)
}
add2(function(y){return y;}(2));
//这里面的function(y){return y;}(2)就是一个匿名函数作为参数传递的存在
伊谢尔伦

因为想名字是件麻烦事,在不需要区别唯一性的地方,不用名字多方便。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号