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

问题描述 投票:0回答:4

我正在浏览一些示例代码,用于循环浏览Chrome App 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).forEach {...}。我试着查找assignment foreachequal foreach,但没有结果。

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

javascript arrays ecmascript-6 syntax
4个回答
2
投票

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

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

0
投票

除了分配表达式之外,这不是别的。 (dirEntry.entries = entries)将返回entries的值,forEach将被应用,dirEntry.entries也将返回entires。它在一条线上做事。

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

0
投票

它只是一个赋值和forEach在数组上的立即执行,现在由entriesdirEntry.entries引用。


0
投票

这只是一个懒惰的家伙试图保存自己夫妻按键。它等同于

dirEntry.entries = entries;
entries.forEach(...)
© www.soinside.com 2019 - 2024. All rights reserved.