Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/03/2012, 00:55
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Crear Una Instancia De Un Objeto y Modificarlo Al Ocurrir Evento HTML

Cita:
Iniciado por zerokilled
para mis gustos, no es tan cómodo como la primera alternativa ya que puedes usar directamente this. seguro hay más opciones, pero estas son de las que puedo pensar por el momento.
¡no se como me pude olvidar! también puedes usar bind para enlazar el método con la instancia. en teoría es casi como la alternativa del closure, pero con la comodidad de poder utilizar directamente la referencia this y de no tener que crear manualmente el closure. además, no estás limitado a un solo modelo de eventos, sino que puedes usar ambos: DOM Event 0 ó addEventListener. bind lo que hace es que devuelve una nueva función donde enlaza otra función con un objeto. en la última versión del estándar javascript (ecmascript), existe la función nativa bind.
Código:
function Fn(){
...
this.handler = function(){
console.log(this, arguments);
};
this.element.eventType = this.handler.bind(this);
}
como de costumbre, hasta donde conozco iexplorer8 no tiene soporte nativo. por lo que debes crear una implementación que tenga la misma funcionalidad. en la web hay varios ejemplos de como implementar una función similar para navegadores sin soporte. he aquí uno.

Código:
if(!Function.prototype.bind){
Function.prototype.bind = function(obj){
var that = this, args = [].slice.call(arguments, 1);
return function(){
return that.apply(obj, [].slice.call(arguments).concat(args));
};
};
}
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.