首页 > web前端 > js教程 > 如何在不使用 \' \' Babel 技巧的情况下创建 JavaScript 中的可变柯里求和函数?

如何在不使用 \' \' Babel 技巧的情况下创建 JavaScript 中的可变柯里求和函数?

DDD
发布: 2024-11-28 07:12:09
原创
344 人浏览过

How Can a Variadic Curried Sum Function in JavaScript Be Created Without Using the ' ' Babel Trick?

不使用 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板