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!