Как использовать свойство объекта с именем constructor?

Сабж.
var o = {};
var c = 'constructor';

if (o[c] == undefined) o[c] = [];
o[c].push('val');

Код ломается с ошибкой Uncaught TypeError: o[c].push is not a function
В принципе понятно почему. Но мне нужна структура данных с текстовыми ключами (то что обычно называется ассоциативный массив или dict) среди которых и constructor - как с этим бороться?
  • Вопрос задан
  • 126 просмотров
Решения вопроса 1
1) не использовать "constructor", "prototype", "hasOwnProperty"...
2) или
var o = Object.create(null);
ключевые слова: прототипное загрязнение
Сила JavaScript. 68 способов эффективного использо... стр 175
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@forevist
Front-End Developer
Не используйте зарезервированных имен.
typeof o.constructor
"function"


Как вариант: добавьте '_' перед ключом.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Intspirit Краснодар
от 80 000 до 150 000 ₽