如何检查功能是否经过策划
我想打电话给她
sum(1, 2) // результат 3
无论哪种方式
sum(1, 2)(3) // резултьтат 6
问题是我了解如何使用 caroved 选项来执行此操作,但我不明白如何使用 sum(1, 2) 选项调用它,因为它返回 [Function]。
function sum(...rest1) {
return function(...rest2) {
let counter = 0
Array.prototype.concat(rest1, rest2).forEach((n) => {
counter += n
})
return counter
}
}
console.log(sum(1, 2)(3))
当参数的数量未知时,如何在函数体内组织检查以查看它是否被策划?
如果它被称为 sum(1, 2) 和 sum(1, 2)(3),我怎样才能使这个函数工作?
你永远不知道你的函数将来会如何应用。例如,在第一行,您可以这样做:
问题是,一千行之后,它可以被某人作为一个函数调用
a(1,2),同时又直接作为一个值使用c = a + 10。因此,您需要提前知道该功能将来将如何使用。或者它需要既是函数又是数字,这在原则上是不可能的。当然,您可以打破语言并以这种方式发明自己,但在任何情况下都不能在实际项目中编写这样的代码。至少,这可能会在其他代码示例中产生意想不到的后果。
在 javascript 中,这样的技巧不太可能奏效。
最简单的事情是制作两个不同名称的函数。或者做
sum(a)(b)(c)(),sum(a)(b)()。在 scala 中,可以这样做,因为输入是静态的,但即使在那里也不推荐。
在javascript 中,焦点从
valueOf(live...)