Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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
foreach之前的Javascript赋值(我不知道它叫什么)_Javascript_Arrays_Ecmascript 6_Syntax - Fatal编程技术网

foreach之前的Javascript赋值(我不知道它叫什么)

foreach之前的Javascript赋值(我不知道它叫什么),javascript,arrays,ecmascript-6,syntax,Javascript,Arrays,Ecmascript 6,Syntax,我正在浏览一些Chrome应用程序API中的目录循环示例代码,我遇到了一个我以前从未见过的语句,不知道要搜索什么 function recurseDirectory(dirEntry, callback) { var dirsLeft = 1; var rootEntries; let helper = (dirEntry, isRoot) => { dirEntry.createReader().readEntries(entries =>

我正在浏览一些Chrome应用程序API中的目录循环示例代码,我遇到了一个我以前从未见过的语句,不知道要搜索什么

function recurseDirectory(dirEntry, callback) {
    var dirsLeft = 1;
    var rootEntries;
    let helper = (dirEntry, isRoot) => {
        dirEntry.createReader().readEntries(entries => {
            dirsLeft--;

            if (isRoot) {
                rootEntries = entries;
            }
            //This line is what I'm confused about
            (dirEntry.entries = entries).forEach(entry => {
                if (entry.isDirectory) {
                    dirsLeft++;
                    helper(entry);
                }
            });

            if (!dirsLeft) {
                callback(rootEntries);
            }
        });
    }

    helper(dirEntry, true);
}
我还不能运行这段代码,因为它只是一个片段,所以我还在剖析它

我不知道的部分是
(dirEntry.entries=entries)。我试图查找
assignment foreach
equal foreach
,但没有结果


这个操作/语法调用了什么,它做了什么?

它只是一个普通的变量赋值-然而,将它放在括号中意味着你在赋值
dirEntry.entries
条目的值
entries
,并用相同的语句迭代
条目
,它只是以下的简写:

dirEntry.entries = entries;
entries.forEach(entry => {...});

这只是一个普通的变量赋值-然而,将其放在括号中意味着您正在赋值
dirEntry.entries
条目的值
entries
,并使用相同的语句迭代
条目
-它只是以下的缩写:

dirEntry.entries = entries;
entries.forEach(entry => {...});

这不是别的东西,而是赋值表达式
(dirEntry.entries=entries)
将返回
条目的值,该值将应用于
forEach
,并且在
dirEntry.entries
中返回到
entires
。它在一行中处理事情

  • data.entires
    的值更改为
    entires
  • 返回应用了
    forEach
    entires

    • 这不是别的东西,而是赋值表达式
      (dirEntry.entries=entries)
      将返回
      条目的值,该值将应用于
      forEach
      ,并且在
      dirEntry.entries
      中返回到
      entires
      。它在一行中处理事情

      • data.entires
        的值更改为
        entires
      • 返回应用了
        forEach
        entires

      它只是一个赋值,并在数组上立即执行
      forEach
      ,该数组现在由
      条目和
      dirEntry引用。entries
      它只是一个赋值,并在数组上立即执行
      forEach
      ,该数组现在由
      条目和
      引用
      dirEntry.entries

      这只是一个懒汉,他想通过按键来拯救自己。相当于

      dirEntry.entries = entries;
      entries.forEach(...)
      

      这只是一个懒惰的家伙试图拯救自己。相当于

      dirEntry.entries = entries;
      entries.forEach(...)
      

      不用担心@IshouldchangemyUsername,总是乐于帮助。不用担心@IshouldchangemyUsername,总是乐于帮助。如果你想知道它叫什么,它就是“分组运算符”:如果你想知道它叫什么,它就是“分组运算符”: