将未知数量的参数传递给 JavaScript 函数

2023-12-12

有没有办法传递未知数量的参数,例如:

var print_names = function(names) {
    foreach(name in names) console.log(name); // something like this
}

print_names('foo', 'bar', 'baz');

另外,如何获取传入的参数数量?


ES3(或 ES5 或老式 JavaScript)

您可以通过 magic 访问传递给任何 JavaScript 函数的参数arguments对象,其行为类似于数组。使用arguments你的函数看起来像:

var print_names = function() {
     for (var i=0; i<arguments.length; i++) console.log(arguments[i]);
}

重要的是要注意arguments is not数组。 MDC 有一些很好的文档:https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Functions#Using_the_arguments_object

如果你想转arguments到一个数组中,这样你就可以做类似的事情.slice(), .push()等等,使用这样的东西:

var args = Array.prototype.slice.call(arguments);

ES6 / 打字稿

有更好的方法!新的其余参数功能支持您:

var print_names = function(...names) {
    for (let i=0; i<names.length; i++) console.log(names[i]);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将未知数量的参数传递给 JavaScript 函数 的相关文章

随机推荐