событие объекта
Есть строение, вроде верно описал:
var Animal = function (){ this.x = 0; }; Animal.prototype.start = function (x) { this.x = x; } Animal.prototype.stop = function (x) { this.x = x; } Animal.protorype.mouseDown = function () { } //... вешаем обработчики клика и т.д. // белка стартует по клику мыши var belka = new Animal(); Можно ли повесить кроссбраузерно на белку обработчик события чтобы узнавать this.x, кроме watch. Или каким-то образом расширить mouseDown не трогая исходный код Animal? |
может быть, setter ?
|
Цитата:
|
Цитата:
Цитата:
|
Может как-то так?
function dekor() { var back = Animal.prototype.mouseDown; Animal.prototype.mouseDown = function() { //чё-то делаете back() //чё-то делаете } } dekor() |
Цитата:
начнем с места: var belka = new Animal(); Дальше пиши что хочешь, до этого момента писать ничего нельзя. |
Цитата:
Gozar, очередная задачка на слом мозга) Признаться, не совсем понял, зачем Цитата:
Цитата:
Вариант "подмены" метода belka.mouseDown не рассматривается? belka.mouseDownDown = function () { belka.mouseDown(); alert( belka.x ); }; |
Цитата:
Никаких геттеров и сеттеров. Нужно выполнить функцию(одну или десять) по событию Animal.prototype.mouseDown |
Когда мы делаем var belka = new Animal();
Белка оживает. Мы не знаем когда она побежит или остановиться. Но нам также нельзя вешать отлов событий на DOM. Мне тут уже подсказали что простым способом это вроде сделать нельзя. Так что можно особо голову не ломать. |
Proxy в ближайшем будущем)
|
Часовой пояс GMT +3, время: 14:51. |