有没有办法传递未知数量的参数,例如:
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(使用前将#替换为@)