JS:Arguments Optional(参数求和)

来源:互联网 发布:java随机生成一个数组 编辑:程序博客网 时间:2024/05/12 03:19

创建一个计算两个参数之和的 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;                }            };        }    }}
0 0