Implementando eventos no meu próprio objeto

O que eu quero é um objeto personalizado que forneça alguns eventos. Por exemplo:

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);
    }
}

O código para usar o evento seria semelhante a:

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

Como você pode ver ... a maneira padrão de usar eventos no JS. Mas eu não posso fazer isso worling ...

Atualmente, meu problema é que meu objeto não implementa "addEventListener" e "dispatchEvent". Mas essas funções são normalmente implementadas a partir de "elemento" ...

Posso disponibilizá-los de alguma forma ou tenho que implementá-los para mim? Como eu tenho que implementá-los? Eu tenho que implementar meu próprio eventhandling? (ter uma lista interna de manipuladores, uma função "adicionar" - e "remover" - e disparar cada manipulador quando eu quiser disparar o evento)

Saudações!

questionAnswers(4)

yourAnswerToTheQuestion