可能会在其他 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/