最近我被要求写一个javascript函数(这是一个编码测试),他们希望我实现一个函数,它将添加和返回值.
add(3,2);//should return 5
add(3)(2); //should return 5
Run Code Online (Sandbox Code Playgroud)
我不确定这是否可行.我不是javascript的专家,所以可以从谷歌搜索获得任何线索.
您必须先检查第二个参数是否先给出; 如果是,立即返回结果; 否则,返回一个将完成添加的函数:
function add(a, b)
{
if (typeof b == 'undefined') {
return function(b) {
return a + b;
}
} else {
return a + b;
}
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您不喜欢重复的逻辑:
function add(a, b)
{
var f = function(b) {
return a + b;
};
return typeof b == 'undefined' ? f : f(b);
}
Run Code Online (Sandbox Code Playgroud)
这也称为部分功能应用或currying.
| 归档时间: |
|
| 查看次数: |
217 次 |
| 最近记录: |