在javascript中使用闭包求两个参数的和
我正在为freecodecamp做一个练习,我必须创建一个将两个参数相加的函数。如果只提供了一个参数,则返回一个函数,该函数需要一个参数并返回总和 例如,addTogether(2,3)应该返回5,addTogether(2)应该返回一个函数 我的代码如下:在javascript中使用闭包求两个参数的和,javascript,function,closures,Javascript,Function,Closures,我正在为freecodecamp做一个练习,我必须创建一个将两个参数相加的函数。如果只提供了一个参数,则返回一个函数,该函数需要一个参数并返回总和 例如,addTogether(2,3)应该返回5,addTogether(2)应该返回一个函数 我的代码如下: function isNumber(n) { return !isNaN(parseFloat(n)) && isFinite(n); } function isFunction(functionToCheck) {
function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
function isFunction(functionToCheck) {
var getType = {};
return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
}
function addTogether() {
var args = Array.prototype.slice.call(arguments);
var param1=args[0];
var sum=function(){
var argSub=Array.prototype.slice.call(arguments);
var param2=argSub[0];
if (isNumber(param2))
return;
else
return param1+param2;
};
if (args.length===1){
return sum;
} else if (isNumber(param1)){
return param1+args[1];
}
}
addTogether(2,3);
当我执行时,addTogether(2)(3)应返回5,当我执行时,addTogether(2,“3”)应返回'undefined'
我想我检查参数的方式失败了。我已经尝试了许多不同的配置,我被卡住了。有什么建议吗
感谢使用闭包添加数字。很少有行被注释以给出如何调用内部函数的想法。 参考:Javascript中的闭包和IIFE。
函数和(x){
var输入=x;
功能添加(y){
返回输入+y;
}
返回添加;
}
//var sum1=总和(2);
//console.log(sum1(3));//5.
控制台日志(总和(2)(3))//5
FYI这叫咖喱。你什么意思??闭包不是吗?这是一些网站(包括developer.mozillaIt)中的定义,它使用闭包,但分解类似函数的技术称为闭包。