function Person(gender) {
this.gender = gender;
}
Person.prototype.sayGender = function()
{
alert(this.gender);
};
var person1 = new Person('Male');
var genderTeller = person1.sayGender;
person1.sayGender(); // alerts 'Male'
genderTeller(); // alerts undefined
¿Por qué genderTeller(); las alertas indefinidas no están claras para mí. si lo veo, creo que es lo mismo que la línea superior. Puede algún favor de explicar los detalles¿Por qué cambia `this` en un método al llamar una referencia al método de un objeto?
¿Cómo "perdemos el contexto del objeto person1" es un poco confuso. –
@sushilbharwani: Como no lo llamas de inmediato, solo estás asignando una referencia a la función en una variable. Así es como funciona JavaScript. – alex