【发布时间】:2018-04-19 08:56:40
【问题描述】:
以下代码失败
let x = {this}
为什么我不能在 this 中使用速记属性名称?
来自浏览器的错误消息
chrome 66.0.3359.117 : Uncaught SyntaxError: Unexpected token }
firefox 59.0.1:这是一个无效的标识符
edge 41.16299.371.0 : 对标识符使用关键字是无效的
我不太明白这些消息的含义。
为了说明清楚,下面的代码运行良好
let x = 5
let y = {x}
let z = {this:this}
console.log({x,y,z})
【问题讨论】:
-
因为this是一个关键字,像function、if、for等等……如果你加值,那么它就变成了一个key。
-
不确定,但似乎
{}创建了一个对象字面量,而内部对象this总是引用它自己的对象,此处未定义 -
@RadonirinaMaminiaina 我不能使用
functioniffor作为对象。但this确实指的是一个对象。我不明白为什么这是被禁止的 -
@brk 第二部分仅供参考。我的问题是第一次剪断。还是第一个片段在您的环境中运行没有错误?
-
@RadonirinaMaminiaina 从来都不是问题
标签: javascript ecmascript-6 language-lawyer