当前位置:  开发笔记 > 编程语言 > 正文

对象文字属性值速记与`this`不兼容

如何解决《对象文字属性值速记与`this`不兼容》经验,为你挑选了1个好方法。

在JavaScript中,可以执行以下操作:

var a = {this: this}

但是使用ES6属性简写我得到了SyntaxError:

var b = {this}; // SyntaxError: this is a reserved identifier

这不是一个真实的用例,但我只是想知道这两者之间有什么区别.我认为它应该做同样的事情(创建一个新对象或抛出一个错误).

更新:

我在Firefox 42.0中运行此示例.但是它在babel-node中工作(它创建{ this: {} }没有错误的对象).那么正确的行为是什么?



1> Pointy..:

该速记属性初始化子句的语法规定所使用的单个术语必须是标识符.因为this是保留字,所以它不是标识符,因此您会收到语法错误.

规范的相关部分是第12.2.6节.

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有