代码之家  ›  专栏  ›  技术社区  ›  nonopolarity

如何创建函数并传入变长参数列表?

  •  2
  • nonopolarity  · 技术社区  · 14 年前

    我们可以创建一个函数 p 在以下代码中:

    var p = function() { };
    if (typeof(console) != 'undefined' && console.log) {
        p = function() { console.log(arguments); };
    }
    

    但是参数像数组一样传递给 console.log ,而不是像在

    console.log(arguments[0], arguments[1], arguments[2], ... 
    

    是否有方法像上面那样展开参数并传递到console.log?

    请注意 如果原始代码是

    var p = function() { };
    if (typeof(console) != 'undefined' && console.log) {
        p = console.log;
    }
    

    然后它在firefox和ie 8上运行良好,但在chrome上没有。

    1 回复  |  直到 14 年前
        1
  •  8
  •   John Kugelman Syzygies    14 年前

    你可以用 Function.apply() :

    console.log.apply(console, arguments);