我使用私有/公有方法的下一個語法JavaScript
:調用公共方法中的方法與此指針
function Cars() {
this.carModel = "";
this.getCarModel = function() { return this.carModel; }
this.alertModel = function() {alert (this.getCarModel());}
}
但是,當我打電話給一個方法alertModel
其有錯誤,因爲this
所指向的對象window
因此不能找到它: alert (this.getCarModel());
- this
指着窗口
var newObject = new Cars();
newObject.alertModel();
我想聲明ŧ軟管方法也在prototype
,但它的行爲相同。
Cars.prototype.getCarModel = function() {
this.getCarModel = function() { return this.carModel; }
}
Cars.prototype.alertModel = function() {
alert (this.getCarModel());
}
什麼I'a做的是調用它沒有這個like
是:
Cars.prototype.alertModel = function() {
alert (newObject.getCarModel());
}
是它的唯一途徑?因爲在其他方法中它的作品。
這兩個答案都是題外話。你一定是錯的。在你的例子中,'this'是實例('newObject'),所以它應該將空字符串警告爲'carModel'的值。 – marekful 2013-02-24 09:57:26
@ MarcellFülöp這是我從不同頁面調用它時的行爲... – oleg 2013-02-24 10:02:58