Отрицательные свойства у объекта
Приветствую.
Допустимо ли задавать отрицательные свойства тому или иному объекту? К примеру: var obj = {-1:"a",-2:"b",-3:"nnn"} Если да, то нужно ли отрицательные цифры обрамлять кавычками или нет? |
Цитата:
|
Цитата:
var obj = {'-1':"a",'-2':"b",'-3':"nnn"}; alert(obj['-1']); |
ksa,
Я проверял, но я просто боюсь, что это может быть не по стандарту и, например, не работать в более менее старых браузерах. Почему то у меня запись без кавычек (в хроме) не дает ошибки. То есть, выходит что отрицательные имена свойствам допустимы? |
Цитата:
|
ksa,
Какая версия оперы? Вебкит? Именно без кавычек выдает ошибку? А с кавычками нормально? |
Цитата:
Информация о версии Версия: 12.17 Сборка: 1863 Платформа: Win32 Система: Windows 7 Цитата:
Цитата:
|
Собственно, обращаться-то можно и без кавычек:
var test = { "-1": -1, "[object Object]": {} }; test[-2] = -2; alert([ test[-1], test[-2], test[{}] ]); |
Ключи объекта всегда строки. При обращении через квадратные скобки любая не-строка будет приведена к строке. Вот и всё.
|
Кстати, пустая строка - тоже строка, и может быть ключом:
var obj = {'': 'yes'}; alert(obj['']); |
Часовой пояс GMT +3, время: 02:50. |