Javascript : optional parameters in function
本问题已经有最佳答案,请猛点这里访问。
假设我有这个:
1 2 3 | function concatenate(a, b, c) { // Concatenate a, b, and c } |
我该怎么处理这些电话?
1 2 3 4 5 | x = concatenate(a) x = concatenate(a, b) x = concatenate(a, c) |
如何使我的函数知道我给它的参数?
任何未完成的论点都将是
在函数中,可以检查
或者,可以使用对象参数来模仿关键字参数:
只需使用
1 2 3 4 5 6 7 | function concatenate() { var result = ''; for (var i = 0; i < arguments.length; i++) { result += arguments[i]; } return result; } |
使用es6
1 2 3 4 5 6 7 8 9 | concatenate(a); concatenate(a, b); concatenate(a, c); function concatenate(...args){ // for old browsers // `...args` is an equivalent of `[].slice.call(arguments);` return args.join(''); } |
从ES6/ES2015开始,您可以像在PHP中一样执行以下操作:
1 2 3 | function concatenate(a, b = false, c = false) { // Concatenate a, b, and c } |
对于旧版本,可以执行以下操作:
1 2 3 4 5 6 7 8 9 10 | function concatenate(a, b, c) { if( typeof b !== 'undefined' && typeof c !== 'undefined') { // code when a, b and c are defined } else if ( typeof b !== 'undefined' && typeof c == 'undefined') { // code when a and b are defined } else { // code } } |
我相信还有更好的方法,但应该有效。