Как использовать свойство объекта с именем 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 - как с этим бороться?
Я бы рад, если бы зарезервированные имена не использовали слова которые мне надо сложить в структуру. Ключи несут информацию и если я изменю их я ее потеряю. Либо же мне надо делать структуру не ИмяРаздел: [Данные раздела], а N:{section: ИмяРаздела, data: Данные раздела}. И как теперь получить доступ к данным раздела по его имени?
ответ Алексей более вам подходит.
Но добавляя _ перед ключом, вы так же можете его удалять, когда это необходимо, для получения информации переносимой им