10 августа 2009, 23:06

Javascript: Как изменить свойства Объекта, не создавая классы, то есть без ООП

Для этого нужна функция eval. Опа, взял и раскрыл все секреты ;)
Вкратце: у нас есть Объект (образно говоря дерево), и что бы им нормально управлять нужно написать куча ООП кода :( А иногда это делать просто лень. Ведь всегда проще написать
eval("delete tree['branch']['leaf'][123]");
// или
eval("delete tree.branch.leaf[123]");
// что по сути одно и тоже

Дальше будет ссылка на дурацкий пример, в котором можно:
  • вставлять (добавлять) ноды в объект;
  • переименовывать ноды (как со смещением позиции так и без);
  • удалять ноды.
А также реализованы функции:
  • подсчета вложенности дерева;
  • генерации евал-предложения (координаты объекта);
  • сделан экспорт объекта JSON-like :).
Навешаны фичи:
  • генерации дерева, используя простой JS/CSS (можно сворачивать/разворачивать);
  • прикручено контекстное меню (right-click);
  • прикручен даблклик.



ps:помните, так делать с объектами нельзя,только на свой страх и риск

3 комментария РСС

lastdayz
А в примере что должно происходить? Присутсвует только кнопочка Export, при нажатии на которую ничего не происходит . Браузер — FF 3
Vitaliy Bogdanets
слово export в 3.0.х зарезервировано ;) исправил
вродь везде все ок, работает!
спасибо!
lastdayz
Ага, работает, осталось разобраться что там как работает)
sartas
А как добавлять/удалять ноды? Я смог только раскрыть/свернуть и переименовать. Opera 10.
Vitaliy Bogdanets
Не тестирую в опере, она к ДЖсу хуже чем ИЕ к ЦСС.
Наверное ошибка в синтаксисе для евал ;)

Ваш комментарий

адрес не будет опубликован

ХТМЛ не работает


Ctrl + Enter