passing the parameters as an array

后端 未结 1 1090
耶瑟儿~
耶瑟儿~ 2020-12-12 07:28

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

相关标签:
1条回答
  • 2020-12-12 07:39

    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 ]
    
    0 讨论(0)
提交回复
热议问题