中定義我正在使用「constructor chaining」來定義基類(超級)。確定成員是否在(Javascript)超類
function Super() {
this.member1 = 'superMember1';
this.member2 = 'superMember2';
}
function Sub() {
Super.call(this, arguments);
this.member3 = 'subMember3';
var t = this.hasOwnProperty("member1"); // gives me true, so I cannot use it
}
我該如何測試一個成員(1,2,3)是在我的Sub類還是在Super類中定義(屬於)?
備註:`this [「name」]'不是方法,因爲我只能決定是否賦值 - 不是它屬於Super或Sub。
由於Darhazer評論下面,構造函數鏈複製成員,所以它可能會很棘手。
這不起作用,因爲如果Super中的值有時未定義(沒有賦值),它將失敗。 –
爲了記錄,我不認爲你應該將值分配給未賦值,但將它們設置爲null。但是,如果您需要這樣做,@ Darhazer的答案應該可以工作。 –
絕對如此。只是爲了解釋... –