我正在处理这个 Javascript 代码示例:
const real_numbers_array = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2];
//Karkoli že je increment, sedaj postane funkcija.
const increment = (
function(){
//Namesto zgornjega "function()" dobimo "increment"
return function increment (a1,a2 = 1){
return a1 + a2;
}
})();
console.log(increment(5,2));
console.log(increment(5));
我们有一个常数 increment
我们为其分配一个匿名函数 function()
返回函数 increment()
有两个参数,其中第二个参数有默认值,这两个参数相加。
到目前为止我明白了这一点。但最后有})();
而且我不知道最后一个空()
是什么意思.
默认情况下,此代码返回:
如果我省略 ()
我得到:
那么()
有什么意义呢?在最后?是否有匿名函数function()
实际上只返回increment
我们添加()
获取increment()
。如果是这样,为什么匿名函数不返回函数 increment()
。毕竟这是函数的默认表示法......
这是某种箭头函数的背叛吗? =)
最佳答案
IIFE (Immediately Invoked Function Expression)
末尾的函数表达式()
将立即调用该函数,JavaScript引擎将通过该函数直接解释该函数。
关于javascript - 构造 "const increment = ()();"在 JavaScript 中起什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59332653/