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
爲什麼genderTeller();未定義的警報不清楚。如果我看到它,我相信它和上面的線一樣。可以請一些解釋細節調用對象方法的引用時,爲什麼方法的this會改變?
我們如何「失去person1對象的上下文」有點混亂。 –
@sushilbharwani:因爲你不會馬上叫它,你只是在一個變量中分配一個對函數的引用。這就是JavaScript的工作原理。 – alex