Noob問題,搜索但沒有找到這個特定問題的答案。 我構造的對象,並使用「這個」關鍵字引用參數的參數:在對象方法中使用這種冗餘的Javascript嗎?
function Obj(a, b, c) {
this.a = a;
this.b = b;
this.c = c;
this.addMe = function() {
alert(this.a + this.b + this.c);
};
}
我的問題是一個簡單的一個:如果A,B,和C中的對象內單獨存在(在換句話說,沒有使用相同名稱聲明的全局變量),是在addMe()方法中使用它們時需要的'this'關鍵字嗎?難道該方法不能簡單地寫爲:
this.addMe = function() {
alert(a + b + c);
};
當我通過創建obj的新實例運行這段代碼,它的工作原理完全相同的兩種方式。如果我爲a,b和c創建全局變量的值與我在實例化新的Obj時使用的參數的值不同,那麼(不是我會這麼做),這些對方法調用的結果沒有影響。那麼,如果我不在方法中使用「this」,我是否錯過了會回來咬我的東西?
的差異/問題那要看什麼'了''B'和'C'是,如果有一個機會,他們」在某個時候會被重新分配。如果「這個」版本從不重新分配,它們應該實際上是相同的。 – Carcigenicate
如果您想從方法中獲取實例的初始狀態,那麼您將通過參數返回數學。我想從方法中獲取實例的當前狀態,然後通過對象的屬性返回數學運算。 – Teemu
就像'@ Carcigenicate'所說的那樣,但既然你把這些作爲公共財產,你就會想用'this',因爲重新分配是一種選擇。 – PHPglue