Javascript 将参数作为数组传递

Javascript 将参数作为数组传递,javascript,Javascript,我使用了preload()方法: 这很好用。但是现在我想把所有的参数放在一个数组中,所以现在是这样的: var myArray = ['img-1','img-2',...,'img-num']; preload(myArray) 但显然,这种方法是错误的,因为预加载是加载由comman分隔的参数,而不是加载组合所有参数的数组 因此,我非常想知道是否有什么事情要做?您可以使用preload.apply(apply可从函数对象的,)它可以将数据数组作为参数展开,如下所示 preload.app

我使用了preload()方法:

这很好用。但是现在我想把所有的参数放在一个数组中,所以现在是这样的:

var myArray = ['img-1','img-2',...,'img-num'];

preload(myArray)
但显然,这种方法是错误的,因为预加载是加载由comman分隔的参数,而不是加载组合所有参数的数组


因此,我非常想知道是否有什么事情要做?

您可以使用
preload.apply
(apply可从
函数
对象的,)它可以将数据数组作为参数展开,如下所示

preload.apply(this, myArray);
function printer() {
    console.log(Array.prototype.slice.call(arguments));
}

printer(1, 2, 3);
# [ 1, 2, 3 ]
printer([1, 2, 3]);
# [ [ 1, 2, 3 ] ]
printer.apply(this, [1, 2, 3]);
# [ 1, 2, 3 ]
比如说,

function printer(first, second, third) {
    console.log(first, second, third);
}

printer(1, 2, 3);
# 1 2 3
printer([1, 2, 3]);
# [1, 2, 3] undefined undefined
printer.apply(this, [1, 2, 3]);
# 1 2 3
由于参数的数量可能不同,人们通常使用特殊对象

您可以在函数中以数组的形式获取参数列表,如下所示

preload.apply(this, myArray);
function printer() {
    console.log(Array.prototype.slice.call(arguments));
}

printer(1, 2, 3);
# [ 1, 2, 3 ]
printer([1, 2, 3]);
# [ [ 1, 2, 3 ] ]
printer.apply(this, [1, 2, 3]);
# [ 1, 2, 3 ]

您可以使用
preload.apply
(apply可从
函数
对象的,)将数据数组作为参数展开,如下所示

preload.apply(this, myArray);
function printer() {
    console.log(Array.prototype.slice.call(arguments));
}

printer(1, 2, 3);
# [ 1, 2, 3 ]
printer([1, 2, 3]);
# [ [ 1, 2, 3 ] ]
printer.apply(this, [1, 2, 3]);
# [ 1, 2, 3 ]
比如说,

function printer(first, second, third) {
    console.log(first, second, third);
}

printer(1, 2, 3);
# 1 2 3
printer([1, 2, 3]);
# [1, 2, 3] undefined undefined
printer.apply(this, [1, 2, 3]);
# 1 2 3
由于参数的数量可能不同,人们通常使用特殊对象

您可以在函数中以数组的形式获取参数列表,如下所示

preload.apply(this, myArray);
function printer() {
    console.log(Array.prototype.slice.call(arguments));
}

printer(1, 2, 3);
# [ 1, 2, 3 ]
printer([1, 2, 3]);
# [ [ 1, 2, 3 ] ]
printer.apply(this, [1, 2, 3]);
# [ 1, 2, 3 ]