Ключевые слова JavaScript в хэш-ключах - PullRequest
10 голосов
/ 28 ноября 2010

В движках JS на основе V8 вы можете использовать ключевые слова без кавычек в ключах свойств, например ({ 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 }

Ответы [ 2 ]

15 голосов
/ 28 ноября 2010

Новая ECMAScript 5 спецификация позволяет именам свойств быть зарезервированными словами. Некоторые движки могли бы принять эту новую «функцию», в то время как другие могут по-прежнему требовать, чтобы имена свойств заключались в кавычки, когда они оказались зарезервированными словами.

2 голосов
/ 28 ноября 2010

Для ясности вы можете избегать использования delete или new или других операторов в качестве имен свойств, даже если более новые спецификации не используются

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...