Implementando eventos en mi propio objeto.

Lo que quiero tener es un objeto personalizado que proporciona algunos eventos. Por ejemplo:

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

El código para utilizar el evento sería:

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

Como puede ver ... la forma predeterminada de usar eventos en JS. Pero no puedo hacer que empeore ...

Actualmente mi problema es que mi objeto no implementa "addEventListener" y "dispatchEvent". Pero estas funciones normalmente se implementan desde "elemento" ...

¿Puedo hacer que estén disponibles de alguna manera o tengo que implementarlos por mi cuenta? ¿Cómo tengo que implementarlas? ¿Tengo que implementar mi propia gestión de eventos? (Al tener una lista interna de controladores, una función de "agregar" y "eliminar", y activar cada controlador cuando deseo activar el evento)

¡Saludos!

Respuestas a la pregunta(4)

Su respuesta a la pregunta