2

foo(a, b, c) 函数参数 (a, b, c) 默认定义

这是我的代码:

function foo(a, b, c) {


    // a, b, c default @param ?


};

还是 foo(a, b, callback) {} 默认回调?谢谢。

4

3 回答 3

4

通常的解决方案是这样的:

function foo(a, b, c) {
    a = a || 22;
    b = b || "ee";
    c = c || function(){};
};

如果您的参数可以具有0''作为有效值,您可以测试

 if (typeof(a)=='undefined') a==22;
于 2012-10-14T14:39:02.020 回答
0

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);
于 2012-10-14T14:42:22.683 回答
-2

它只是提供 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());
};
于 2012-10-14T14:39:29.717 回答