Joh*_*hen 15 javascript anonymous-function
我正在读这本书,它有这个代码示例
function getFunction() {
var result = [];
for (var i = 0; i < 10; i++) {
result[i] = function(num) {
return function() {
console.log("this is " + num);
}
}(i);
};
return result;
}
Run Code Online (Sandbox Code Playgroud)
它工作正常,但为什么这里的匿名函数没有包含在这样的括号中(function(...))(i);?在哪些情况下可以在匿名函数中省略括号?
Que*_*tin 18
由于函数声明和函数表达式的语法是相同的,因此JS会根据函数的代码告诉您使用哪一个.
要阻止它成为函数声明,您需要在表达式中使用它.将它括在括号中将会做到这一点,但在它之前=也会有一个遗嘱(和许多其他运算符一样).由于这里有一个=,所以括号是不必要的.