NodeJS 什么时候函数不是函数?

xmd2e60i  于 2022-12-22  发布在  Node.js
关注(0)|答案(1)|浏览(139)

我在节点19.3.0的工作线程中执行以下代码:

let liveCves;
liveCves = yaml.load(fs.readFileSync(liveCvesPath, { encoding : 'utf8' }));

for (const { cve } of liveCves) {
  console.log(cve.references.constructor.name, cve.references.map);
  const referenceUrls = cve.references.map(r => r.url);
}

日志输出为:

Array [Function: map]

但是,当在for循环的第二行调用map时,结果是一个异常:

TypeError [Error]: cve.references.map is not a function`

这怎么可能呢?

velaa5lx

velaa5lx1#

如果函数不是Function对象的示例,则该函数不是函数。在JavaScript中,函数是对象,它们是使用function关键字创建的。
你可以像这样使用Array.from:

const referenceUrls = Array.from(cve.references).map(r => r.url);

相关问题