在V8基于-的JS引擎,你可以在属性键中使用不带引号的关键字,比如({ delete: 1 })
,而在Rhino或其他JS引擎中,它会抛出错误,这怎么可能?正确的行为应该是什么?
spaceman@spaceman-laptop:~$ rhino
Rhino 1.7 release 2 2010 01 20
js> ({ delete: 1 })
js: "<stdin>", line 2: invalid property id
js: ({ delete: 1 })
js: .........^
js>
spaceman@spaceman-laptop:~$ node
> ({ delete: 1})
{ delete: 1 }
最佳答案
新ECMAScript 5 specification允许属性名称是保留字。一些引擎可能已经采用了这个新的“特性”,而另一些引擎可能仍然需要在属性名称恰好是保留字时引用它们。
关于哈希键中的 JavaScript 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4298594/