Javascript 默认参数函数
foo(a,b,c)函数参数(a,b,c)默认定义 这是我的密码:Javascript 默认参数函数,javascript,Javascript,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或'作为有效值,则可以测
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;
它只是给出了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
或
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);
非常感谢您的回答。是的,我认为公认的答案是错误的:如果OP不小心,他将很难找到bug。
(function() {
var test;
test = function(a, b) {
if (a == null) {
a = 1;
}
if (b == null) {
b = 2;
}
return console.log(a, b);
};
}).call(this);