我知道匿名函数用到的一些场景,比如定义函数的时候用到了
function functionName() {
//some code
}
//使用匿名函数来定义
var f = function() {
//some code
}
但是我不知道JS为什么要创建匿名函数这个东西。
我知道匿名函数用到的一些场景,比如定义函数的时候用到了
function functionName() {
//some code
}
//使用匿名函数来定义
var f = function() {
//some code
}
但是我不知道JS为什么要创建匿名函数这个东西。
比如做了一个匿名函数,在不需要多添加一个函数的时候,可以这样做:
function add2(x){
var r = x+2;
console.log(r)
}
add2(function(y){return y;}(2));
//这里面的function(y){return y;}(2)就是一个匿名函数作为参数传递的存在
是为了做块级作用域:
js没有块级作用域
比如:
for(var i=0;i<10;i++){
}
console.log(i)
输出是10
所以,为了限定作用域,就有了匿名函数这个概念,弥补语言的缺陷,ES6中出了let后匿名函数会被大大被弱化
1.可以不用声明,不用起名字。请求完都是回调,每个都要起名字,写的不累吗。
2.方便循环,如果都要起名字才能用方法,你怎么自己动态创建函数?循环十个请求,十个回调,我就传个url做参数就行了,回调的名字也不用我起。不然手写十份代码,二十个名字?
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答5.2k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
一个函数之所以要有名字,是为了可以在后续重复使用。
但是,如果一个函数只用一次,那么就没有必要给它名字了。
并且,多一个名字就会多声明一个无用的变量,对命名空间造成不必要的浪费。简洁,一向是编程的一个重要原则。
不只函数,像下面的代码:
里面的x也是没有必要的。最好直接写成这样: