如何在node.js控制台(javascript)中实现此语法

如何在node.js控制台(javascript)中实现此语法,javascript,node.js,Javascript,Node.js,相同的函数sum: 总和(7)(3)(5)必须等于15 及 sum(7)(3)+5必须等于15 及 总和(7)(3)必须等于10 如何使之成为可能?您可以使用toString/valueOf方法将结果视为一个值 function sum(a) { chain.valueOf = function() {return a;} return chain; function chain(s) { a += s; return chain; }; } sum(7)(3

相同的函数
sum

总和(7)(3)(5)
必须等于15

sum(7)(3)+5必须等于15

总和(7)(3)
必须等于10


如何使之成为可能?

您可以使用
toString
/
valueOf
方法将结果视为一个值

function sum(a) {
  chain.valueOf = function() {return a;}
  return chain;

  function chain(s) {
    a += s;
    return chain;
  };
}

sum(7)(3)(5)  == 15  // true
sum(7)(3) + 5 == 15  // true
+sum(7)(3)(5)        // 15

summ
应该返回可以被视为函数或数字的内容…?
valueOf
对于非字符串值更有意义,尽管我已经编辑了我的问题。请帮忙。谢谢大家!@听说了,怎么了?它起作用了。它必须将函数返回到下一次调用的可能性,但是
valueOf
允许我们将此函数解释为一个值<代码>+总和(7)(3)==10
总和(7)(3)==10
。你还需要什么?我正在学习,请你解释一下:为什么‘sum(7)(3)==10’返回假,而‘sum(7)(3)==10’返回真。“+”的作用是什么?
+val
类似于
0+val
只是将类型转换为数字<代码>总和(5)结果具有
函数
类型。这就是为什么严格平等
==
失败的原因。使用
+和(5)
进行类型转换后,两侧都有
编号
类型和相同的值。