不使用 Plus Babel 技巧的可变柯里求和
JavaScript 可以创建一个如下所示的 sum 函数吗?
sum(1)(2) = 3 sum(1)(2)(3) = 6 sum(1)(2)(3)(4) = 10
人们错误地认为这是不可能的。不过,利用运算符结合 sum 是可行的。
解决方案:
function sum(n) { var v = function(x) { return sum(n + x); }; v.valueOf = v.toString = function() { return n; }; return v; } console.log(+sum(1)(2)(3)(4));
关键在于 valueOf 和 toString 方法的定义柯里化函数。这些方法规定了函数在强制转换为原始值(例如数字)时的行为方式。通过在这些方法中返回 n,我们确保保留柯里化函数的内部状态(当前总和)。
此技术可以在不依赖 babel 技巧的情况下创建可变参数柯里化求和函数。
以上是如何在不使用 \' \' Babel 技巧的情况下创建 JavaScript 中的可变柯里求和函数?的详细内容。更多信息请关注PHP中文网其他相关文章!