Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/07/2010, 10:54
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
Puntos: 1485
Respuesta: Duda con metodo Bind usado por frameworks

Código:
mifuncion ={
    algo: function(){
        this.nombre = 'carlos';
    },
    name: function(){
        alert('tu'+ this.algo)
    }.bind(this)
}
del primer ejemplo, el this de la linea #20 hace referencia al objeto global, o sea window. esto se debe al momento en que this es invocado. fijate que this no es parte del cuerpo de una función o método. en un objeto literal no se puede hacer referencia a si mismo mientras se esta creando el objeto. por eso cuando invocas name, this.algo no hace referencia al objeto mifuncion, sino al objeto que hayas pasado en bind, en este caso el objeto global. por tanto, mifuncion.name pasa a tener una función distinta a la que realmente se pretendia.

en el segundo ejemplo lo que cambia es que estas invocando el método bind luego que el objeto se crea y dentro de una función. en este caso, el this de la linea #22 -al estar dentro de una función- hace referencia al objeto mifuncion.

por otro lado no le veo sentido enlazar un metodo al mismo objeto que le contiene cuando deberia ser un objeto distinto.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 07/08/2010 a las 10:13 Razón: error bbcode