【发布时间】:2023-03-28 12:43:01
【问题描述】:
是否可以从数组中向 JavaScript 函数发送可变数量的参数?
var arr = ['a','b','c']
var func = function()
{
// debug
alert(arguments.length);
//
for(arg in arguments)
alert(arg);
}
func('a','b','c','d'); // prints 4 which is what I want, then 'a','b','c','d'
func(arr); // prints 1, then 'Array'
我最近写了很多 Python 并且能够接受可变参数并发送它们是一个很棒的模式。例如
def func(*args):
print len(args)
for i in args:
print i
func('a','b','c','d'); // prints 4 which is what I want, then 'a','b','c','d'
func(*arr) // prints 4 which is what I want, then 'a','b','c','d'
是否可以在 JavaScript 中发送一个数组以将其视为 参数数组?
【问题讨论】:
-
请注意,将
for - in循环与arguments对象一起使用不是一个好主意 - 应该使用“普通”循环迭代length属性来代替 -
从来都不是问题,你能详细说明为什么会这样吗? arguments 对象几乎总是足够小,使用 agruments[0..length-1] 版本的性能提升可以忽略不计。
-
我认为 arguments 不是一个实际的数组,而是一个特殊的对象,所以“in”语法可能不起作用,具体取决于 JS 实现。
标签: javascript variadic-functions