在javascript中说我有:
var Person = (function () {
function Person(data) {
data = $.extend({
name: "",
age: 0
}, data);
this.name = data.name;
this.age = data.age;
}
return Person;
})();
Person.prototype.getName = function () {
return this.name;
};
...如果我在 javascript 中正确理解了“this”关键字,它可以引用几乎任何东西,从窗口对象到自身,再到介于两者之间的任何东西(例如对象的调用者)。我的问题是我到底如何编写像 .getName() 这样的方法,以便我知道如果我永远无法确定“this”将指的是什么,我将始终引用存储在 person 对象的 name 属性中的值那个方法?假设 .getName() 被调用并且“this”引用了窗口对象——那么我如何获得我需要的值呢?
我之所以问,是因为我已经使用相当繁重的原型设计继承了一些代码,并且我遇到了各种各样的问题,试图从它们内部引用对象的属性和方法。好像我遗漏了一些东西,但我整天都在研究范围、闭包和其他模式,但我无法解决这个问题。