是否可以检查函数中的第二个括号?

问题描述 投票:0回答:2

我正在处理Javascript挑战。挑战在于下面的代码,在其中您将提供的数字加在一起:

function addTogether() {
//I left this blank because I'm focused on checking for the second parentheses
}

但是,如果尝试将此addTogether(5)(7)传递给function addTogether(),将很难获得第二个括号。

但是,如果您编写此代码,可以同时得到两个括号:

function addTogether() {
  //get first parenteses
  let first = arguments;
  //get second parentheses
  let second = function() {
    return arguments;
  };
}

但是我的问题是,您如何检查是否还有第二个括号?因为我要传递其他数据,例如addTogether(2,3)。换句话说,我可能会将带有一个括号的另一个传递给带有两个括号的另一个传递给function addTogether()

javascript function arguments
2个回答
0
投票

const addTogether = (a, opt) => opt ? a + opt : b => a + b console.log("addTogether(1,3) => ", addTogether(1,3)) console.log("addTogether(4)(6) => ", addTogether(4)(6))

0
投票
如果要进一步自定义行为,请勾选ECMAScript specs。您将需要了解转换路径。

function sum(...args) { const first = args.reduce((sum,x)=>sum+x,0) const second = function(...args) {return sum(first, ...args)} second[Symbol.toPrimitive] = function(){return first} return second } console.log( 1+sum(1)(2)+sum(1)+sum(3), sum(1,1,2) (1,3)(0)(0)+sum(0,-1,1,0), sum(1)(1)(2)(1)(3)(0)(0)(-1,1)(0)+sum() )
© www.soinside.com 2019 - 2024. All rights reserved.