Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript apply():对于介于两者之间的函数,方括号是什么意思?_Javascript_Apply - Fatal编程技术网

Javascript apply():对于介于两者之间的函数,方括号是什么意思?

Javascript apply():对于介于两者之间的函数,方括号是什么意思?,javascript,apply,Javascript,Apply,我有一段代码,看起来很有效,但我不理解其中的一个方面 > [].forEach.apply('javascript', [function(char) { ... console.log(`give me… ${char.toUpperCase()}`); ... }]); give me a… J give me a… A give me a… V give me a… A give me a… S give me a… C give me a… R give me a… I give

我有一段代码,看起来很有效,但我不理解其中的一个方面

> [].forEach.apply('javascript', [function(char) {
... console.log(`give me… ${char.toUpperCase()}`);
... }]);
give me a… J
give me a… A
give me a… V
give me a… A
give me a… S
give me a… C
give me a… R
give me a… I
give me a… P
give me a… T
为什么我们需要第二组方括号,它们是什么意思?我从来没有见过一个函数把它放在那里。谢谢。

需要两个参数

  • 这个
    参数
  • 要传递给函数的参数数组
  • 因此,函数被放入一个数组中,因为
    apply
    函数需要一个参数数组。基本上,您的代码正在传递1个参数,这是一个函数

    但是,您可以将
    .apply
    替换为
    .call
    ,这样就不需要参数数组了,只需将多个参数添加到
    .call
    函数中即可

    [].forEach.call('javascript', function(char) {
      console.log(`give me… ${char.toUpperCase()}`);
    });
    
    .apply
    在现有参数数组或不知道要传递多少参数时非常有用,这是ES6之前的语法。

    需要两个参数

  • 这个
    参数
  • 要传递给函数的参数数组
  • 因此,函数被放入一个数组中,因为
    apply
    函数需要一个参数数组。基本上,您的代码正在传递1个参数,这是一个函数

    但是,您可以将
    .apply
    替换为
    .call
    ,这样就不需要参数数组了,只需将多个参数添加到
    .call
    函数中即可

    [].forEach.call('javascript', function(char) {
      console.log(`give me… ${char.toUpperCase()}`);
    });
    

    .apply
    在现有参数数组或不知道要传递多少参数时非常有用,这是ES6之前的技巧语法。

    @Svenskunganka我认为OP指的是第二组正方形brackets@Phil是的,我不确定,所以它为什么说“可能重复”。仔细阅读标题会让事情变得更清楚:@Svenskunganka我想OP指的是第二组方块brackets@Phil是的,我不确定,所以它为什么说“可能重复”。更仔细地阅读标题会让事情更清楚:]