【发布时间】:2014-01-12 10:16:43
【问题描述】:
我知道这个问题已经以有限的能力得到回答,但我希望它有 n 次 n 参数?
function add(x) {
return function(y) {
if (typeof y !== 'undefined') {
x = x + y;
return arguments.callee;
} else {
return x;
}
};
}
add(1)(2)(3)(); //6
add(1)(1)(1)(1)(1)(1)(); //6
问题是这仅在我添加额外的空括号 () 时才有效
这样做不行add(1)(2)(3)
【问题讨论】:
-
你应该把你的问题说清楚
-
@AndréPena 问题很清楚,也许您在这种 javascript 编程风格方面经验不足,无法理解它。
-
我认为很清楚。他想无限次地柯里化一个函数,而不必执行最后一个函数,立即获得值。不可能,那些东西不能共存。但是,你可以滥用
toString或valueOf。 -
@elclanrs javascript 可以在对象被视为字符串的情况下自动执行
toString方法,因此这是可能的,它只是在它是一个对象这一事实中附带了一些警告可以读取为字符串。 (例如 typeof 等于 'function',以及其他小的奇怪问题) -
这就是我所说的“滥用”。
标签: javascript syntax logic