【发布时间】:2019-05-19 08:02:42
【问题描述】:
这段代码出现在一个非常流行的 JS 教程中:
const sum = (function() {
"use strict";
return function sum(...args) {
return args.reduce((a, b) => a + b, 0);
};
})();
console.log(sum(1, 2, 3)); // 6
【问题讨论】:
-
似乎只需要对内部函数应用严格模式才需要用IIFE包装。
-
@AndrewL,谢谢。我更新了问题以参考一般情况。不过,在具体示例中这样做有什么好处吗?
-
听起来像一个糟糕的教程,tbh。除非您认为严格模式有好处,否则没有任何好处。
const sum = (...xs) => xs.reduce((a,b) => a + b, 0)真的是你所需要的。 -
@hindmost 当然这根本没有必要,他们可以将指令放在内部函数中。
标签: javascript function ecmascript-6 declaration