如何将多个且无限制的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");
答案 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。