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