Javascript为什么要创造匿名函数

发布于 2022-09-02 13:08:18 字数 185 浏览 12 评论 0

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

function functionName() {
  //some code 
}

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

度的依靠╰つ 2022-09-09 13:08:18

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

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

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

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

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

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

print(location.getX());
囍孤女 2022-09-09 13:08:18

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

迟月 2022-09-09 13:08:18
[].forEach((item) => {
    // do some stuff...
});

有些场景用起来方便。

只为一人 2022-09-09 13:08:18

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

function add2(x){
    var r = x+2;
    console.log(r)
}
add2(function(y){return y;}(2));
//这里面的function(y){return y;}(2)就是一个匿名函数作为参数传递的存在
故笙诉离歌 2022-09-09 13:08:18

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

晨敛清荷 2022-09-09 13:08:18

是为了做块级作用域:
js没有块级作用域
比如:

for(var i=0;i<10;i++){
}
console.log(i)

输出是10
所以,为了限定作用域,就有了匿名函数这个概念,弥补语言的缺陷,ES6中出了let后匿名函数会被大大被弱化

失眠症患者 2022-09-09 13:08:18

1.可以不用声明,不用起名字。请求完都是回调,每个都要起名字,写的不累吗。
2.方便循环,如果都要起名字才能用方法,你怎么自己动态创建函数?循环十个请求,十个回调,我就传个url做参数就行了,回调的名字也不用我起。不然手写十份代码,二十个名字?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文