在 JavaScript 中可以执行以下操作:
var a = {this: this}
但使用 ES6 属性简写时,我得到 SyntaxError:
var b = {this}; // SyntaxError: this is a reserved identifier
这不是一个真正的用例,但我只是想知道这两者之间有什么区别。我认为它应该做同样的事情(创建一个新对象或抛出一个错误)。
UPDATE:
我在 Firefox 42.0 中运行这个示例。然而它在 babel-node 中工作(它创建对象{ this: {} }
没有错误)。那么什么是正确的行为呢?
该速记属性初始值设定项子句的语法规定所使用的单个术语必须是标识符。因为this
是保留字,它不是标识符,因此您会收到语法错误。
规范的相关部分是第12.2.6节 http://www.ecma-international.org/ecma-262/6.0/#sec-object-initializer.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)