在 JavaScript 中可以这样做:
var a = {this: this}
但是使用 ES6 属性简写我得到 SyntaxError:
var b = {this}; // SyntaxError: this is a reserved identifier
这不是一个真正的用例,但我只是想知道这两者之间有什么区别。我认为它应该做同样的事情(要么创建一个新对象,要么抛出错误)。
更新:
我在 Firefox 42.0 中运行这个例子。但是它在 babel-node 中工作(它创建对象 { this: {} }
没有错误)。那么正确的行为是什么?
最佳答案
该速记属性初始化器子句的语法规定所使用的单个术语必须是标识符。因为 this
是保留字,它不是标识符,所以会出现语法错误。
规范的相关部分是 section 12.2.6 .
关于javascript - 对象文字属性值简写与 `this` 不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34467262/