如何将无限参数和一个或两个参数传递给 JavaScript 函数? [复制]
Posted
技术标签:
【中文标题】如何将无限参数和一个或两个参数传递给 JavaScript 函数? [复制]【英文标题】:How to pass unlimited arguments and one or two parameters to a JavaScript function? [duplicate] 【发布时间】:2014-03-21 04:37:19 【问题描述】:如何将多个无限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");
【问题讨论】:
和Unlimited arguments in a javascript function 不是重复的,我的问题不同。我想在 jQuery/JavaScript 函数中传递“参数”+ 参数。 鉴于 ES6 为此引入了新的参数语法这一事实,我收回了我的赞成票。我认为你应该编辑标题,以更好地反映问题。 我改了标题。谢谢! 【参考方案1】:您可以使用arguments object。它是一个类似数组的对象,对应于传递给函数的参数。
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
【讨论】:
【参考方案2】:更多未来答案:
ECMAScript 6 专门为此引入了一种新的参数语法,the "rest" parameter。其余参数前面必须有三个点 (...
),并且必须是列表中的最后一个参数。
例子:
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。
【讨论】:
当所有浏览器都支持它时,这将很有用。此功能将使大量代码更具可读性。感谢您将其作为答案:)以上是关于如何将无限参数和一个或两个参数传递给 JavaScript 函数? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5.8:如何将两个参数传递给 Event 和 Listener