创建一个计算两个参数之和的function
。如果只有一个参数,则返回一个function
,该function
请求一个参数然后返回求和的结果。
例如,add(2, 3)
应该返回5
,而add(2)
应该返回一个function
。
调用这个有一个参数的返回的function
,返回求和的结果:
add(2)(3); // 结果为5
function add() {
//储存参数为数组
var args = new Array(arguments.length);
for (var i = 0; i < args.length; ++i) {
args[i] = arguments[i];
}
//有两个参数的情况
if (args.length == 2) {
//判断是否数字
if (typeof args[0] !== 'number' || typeof args[1] !== 'number') {
return undefined;
}
return args[0] + args[1];
}
//只有一个参数的情况
if (args.length == 1) {
a = args[0];
if (typeof a !== 'number') {
return undefined;
} else {
//返回一个带有一个参数的函数
//并继续求和
//闭包
return function(b) {
if (typeof b !== 'number') {
return undefined;
} else {
return a + b;
}
};
}
}
}
THE END.
网友评论