Reputation: 53
I've used a preload() method:
preload('img-1','img-2',...,'img-num')
Which works fine. But now I wanted to place all that parameters in an array, so which would go like this now:
var myArray = ['img-1','img-2',...,'img-num'];
preload(myArray)
But obviously this is wrong method as preload is to load the parameters separated by comman not the array which combine all parameters.
So, I'm very much curious to know if there is something to do?
Upvotes: 0
Views: 53
Reputation: 239463
You can use preload.apply
(apply is available from the Function
object's, Function.prototype.apply
), which can spread out an array of data as arguments, like this
preload.apply(this, myArray);
For example,
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
Since the number of arguments can vary, people normally use arguments
special object.
You can get the list of arguments as an array, within the function, like this
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 ]
Upvotes: 4