Реализация событий в моем собственном объекте

Я хочу иметь пользовательский объект, который предоставляет некоторые события. Например:

var CustomObjectTextChangedEventName = 'textChanged';
var CustomObject = function () {
    var _this = this;
    var _text = "";

    _this.OnTextChanged = document.createEvent("Event");
    _this.OnTextChanged.initEvent(CustomObjectTextChangedEventName, true, false);

    _this.ChangeText = function (newText) {
        _text = newText;
        fireTextChanged();
    };

    function fireTextChanged() {
        _this.dispatchEvent(_this.OnTextChanged);
    }
}

Код для использования события будет выглядеть так:

myCustomObject = new CustomObject();
myCustomObject.addEventListener(CustomObjectTextChangedEventName, handleTextChanged, false);

Как видите... способ использования событий по умолчанию в JS. Но я не могу заставить его работать...

В настоящее время моя проблема в том, что мой объект не реализует "addEventListener" и "dispatchEvent". Но эти функции обычно реализуются из "элемента"...

Могу ли я как-то сделать их доступными или мне нужно реализовать их самостоятельно? Как я должен их реализовать? Должен ли я реализовать свою собственную обработку событий? (имея внутренний список обработчиков, функции обработчика «добавить» и «удалить» и запустить каждый обработчик, когда я хочу запустить событие)

Приветствую!

9
задан Dominik Kirschenhofer 11 June 2012 в 10:22
поделиться