foo(a, b, c) 函数参数 (a, b, c) 默认定义
这是我的代码:
function foo(a, b, c) {
// a, b, c default @param ?
};
还是 foo(a, b, callback) {} 默认回调?谢谢。
foo(a, b, c) 函数参数 (a, b, c) 默认定义
这是我的代码:
function foo(a, b, c) {
// a, b, c default @param ?
};
还是 foo(a, b, callback) {} 默认回调?谢谢。
通常的解决方案是这样的:
function foo(a, b, c) {
a = a || 22;
b = b || "ee";
c = c || function(){};
};
如果您的参数可以具有0
或''
作为有效值,您可以测试
if (typeof(a)=='undefined') a==22;
CoffeeScript 为此提供了很好的语法:
test = (a = 1, b = 2) ->
console.log a, b
编译为 JavaScript 时:
(function() {
var test;
test = function(a, b) {
if (a == null) {
a = 1;
}
if (b == null) {
b = 2;
}
return console.log(a, b);
};
}).call(this);
它只是提供 fo 功能;
function foo(a, b, callback) {
// @param defaults
(a || (a = "default a"));
(b || (b = "default b"));
// if callback not function is function() {} --> callback();
(callback || (callback = function() { return ""}));
console.log(a, b, callback());
};
foo(); // default a default b undefined
foo("a--", "b--", function() { return "callback"}); // a-- b-- callback
或者
function foo(a, b, callback) {
// @param defaults
var a = a || "default a";
var b = b || "default b";
// if callback not function is function() {} --> callback();
var callback = callback || function() {};
console.log(a, b, callback());
};