可能会在其他 channel 上问这个问题。我有这个:

const reduceList = (list) => {

  return list.filter(Boolean).reduce((a, b, c) => {
    console.log({this});
  });


};

console.log(reduceList([1, 2, 3]));

我得到:



有人知道为什么吗?我使用的是Node.js版本11。

最佳答案

速记对象初始化程序语法需要一个标识符。尽管this(和其他保留字)在技术上是IdentifierName,但不能将其用作ECMAScript规范中说明的标识符。



https://www.ecma-international.org/ecma-262/6.0/#sec-reserved-words

因此,这不仅限于this关键字,其他保留字也会产生类似的语法错误:

{true} // syntax error
{true: true} // valid object literal

本质上,您需要使用命名标识符(变量)才能使此处的内容正常运行。可以将保留字用作属性的名称,但不能用作标识符,因为它们的评估方式不同。

关于node.js - 获取意外 token ,以寻求解释,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55603437/

10-11 11:16