如何将无限参数和一个或两个参数传递给JavaScript函数?

时间:2014-02-20 10:02:30

标签: javascript jquery

如何将多个且无限制的arguments和一个或两个参数传递给函数?

示例:

function myFunction(_id, _class, arg1, arg2, arg3, arg4, etc...){
    console.log($(_id).html());
    console.log($(_class).html());

    for(var i = 0; i < args.length; i++) {
        alert(args[i]);
    }
}

myFunction("#myDiv",".mySpan", "Hello World!", "Bonjour le monde!", "Hola mundo!", "Ciao mondo", "Hallo Welt!", "etc");

2 个答案:

答案 0 :(得分:12)

您可以使用arguments object。它是一个类似于Array的对象,对应于传递给函数的参数。

function myFunction(_id, _class){
    console.log($(_id).html());
    console.log($(_class).html());

    for(var i = 2; i < arguments.length; i++) {
        alert(arguments[i]);
    }
}

myFunction("#myDiv",".mySpan", "Hello World!", "Bonjour le monde!", "Hola mundo!", "Ciao mondo", "Hallo Welt!", "etc");

演示:Fiddle

答案 1 :(得分:6)

更多未来的答案:

ECMAScript 6专门为此引入了一个新的参数语法the "rest" parameter。 rest参数必须以三个点(...)开头,并且必须是列表中的最后一个参数。

示例:

function myFunction(_id, _class, ...args){
    console.log($(_id).html());
    console.log($(_class).html());

    for(var i = 0; i < args.length; i++) {
        alert(args[i]);
    }
}

DEMO(仅限FF15 +)


到目前为止,only Firefox 15+ supports it