Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Перегрузка свойств и методов Javascript


Автор: kanaris 13.8.2012, 19:03
Интересуют в javascript такие возможности:

* Если обратиться к несуществующему методу, вызовется специальный метод, который "выполнет обязанности" этой функции (наподобие как в http://php.net/manual/ru/language.oop5.overloading.php), тоже самое с свойствами (php: __get(), __set(), __isset() и __unset())
* Есть ли такое событие, которое отслеживает изменения переменных? Поменял в объекте какое-то свойство, и сразу выполнился обработчик, который стоит на этой переменной.

Подскажите, как такое реализовать или подобное?


Автор: нуп 13.8.2012, 19:19
http://javascript.ru/forum/misc/30240-povesit-setter-na-input-value.html

Добавлено через 24 секунды
defineProperty для нормальных браузеров.

Автор: Amphiluke 13.8.2012, 19:21
Текущий стандарт языка не предусматривает таких возможностей. Тем не менее, отдельные реализации ECMAScript уже сейчас предоставляют некоторый API (например, https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/noSuchMethod от SpiderMonkey). Вероятно, полностью или частично эти возможности будут реализовываться в следующей версии стандарта (Harmony).
Ну а возможность определять методы-геттеры и сеттеры уже является частью текущего стандарта ECMAScript 5.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)