对象文字属性值与“this”不兼容
Object Literal Property Value Shorthand incompatible with `this`
在JavaScript中,可以执行以下操作:
var a = {this: this}
但是使用ES6属性简写,我得到了SyntaxError:
var b = {this}; // SyntaxError: this is a reserved identifier
这不是一个真实的用例,但我只是想知道这两者之间有什么区别。我认为它也应该这样做(要么创建一个新对象,要么抛出一个错误)。
更新:
我在Firefox 42.0中运行了这个例子。然而,它在babel节点中工作(它创建对象{ this: {} }
时没有出错)。那么什么是正确的行为呢?
该简写属性初始值设定项子句的语法规定,使用的单个术语必须是标识符。因为this
是一个保留字,所以它不是标识符,所以会出现语法错误。
规范的相关部分为第12.2.6节。
相关文章:
- TypeError:在不兼容的接收器nodejs上调用了方法Uint8Array.length
- CKJustify和Color Button插件之间的不兼容
- 在不兼容的接收器上调用的方法Set.prototype.add未定义
- 如果不兼容,则隐藏范围输入
- 谷歌图表 - 地理图表“不兼容的数据表:错误:未知地址类型
- IE11真的与getNamedItem()JS函数不兼容吗
- 与您的操作系统或体系结构不兼容:fsevents@1.0.11.
- jQuery脚本滚动在iDevices上不兼容
- three.js javascript/raycasting代码与retina显示器Mac不兼容
- TypeScript无效的重载签名-与实现不兼容
- Firebase child_added“this”不起作用
- PHP JSON编码输出与Javascript Ajax不兼容
- ACE编辑器applyDeltas似乎与setTimeout不兼容
- React如何调用ES6类的呈现函数,使“this”不引用类本身
- Element.insertAdjacentHTML与引导程序类之前和之后的::不兼容
- Geocoding和Animation.drop与超时不兼容
- 如何让我的html5功能不兼容警告使用javascript工作
- 不兼容的数据表: 错误:表包含的列数超过预期
- HTML5 不兼容的浏览器测试
- 对象文字属性值与“this”不兼容