Skip to content

Latest commit

 

History

History
31 lines (22 loc) · 1.06 KB

实现一个 add 方法.md

File metadata and controls

31 lines (22 loc) · 1.06 KB

实现一个 add 方法

实现一个 add 方法,预期效果如下:

add(1)(2, 3)(4).value() // 10

实现如下:

function add(...args) {
  const result = add.bind(null, ...args)
  // const result = (...args1) => add(...args, ...args1)
  result.value = () => args.reduce((acc, cur) => acc + cur)
  return result
}

add(1)(2, 3)(4).value() // 10
add(1)(2)(3)(4).value() // 10
add(1, 2, 3)(4).value() // 10

我们使用了 Rest 运算符将传递给 add 函数的多个参数绑定到一个数组中。接着,我们使用函数的 bind 方法来创建一个新的函数,并通过 Spread 运算符将参数传递给新函数。

为新创建的函数添加一个 value 属性,该属性是一个函数,可以返回所有参数的总和。我们可以使用 reduce 方法来计算参数的总和。

更多资料