我通過一個問題與JavaScript的繼承的幾個方面的實驗,我碰到:的Javascript原型繼承
創建預約系統,圖書航班座位或酒店客房。它針對飛機或旅館的特定部分收取各種費用。例如,頭等艙的成本將比教練高。酒店房間有複式套房,價格更高。跟蹤房間什麼時候可用並且可以安排。
我正在處理酒店房間問題。
我決定帶一個房間基礎對象與一個名爲'duration'的數據成員一起記錄房間預訂的天數,以及兩種方法:預訂和結帳。
我有一個繼承自SingleRoom的派生對象'SingleRoom'。
下面的代碼:
function Room(duration){
this.duration = duration;
}
Room.prototype.book =()=>{
if (this.prototype.count > 0){
this.prototype.count -= 1;
return true;
}
else {
return false;
}
}
Room.prototype.checkOut =()=>{
this.prototype.count += 1;
console.log("Room checked out");
}
function SingleRoom(duration){
this.price = 1000;
}
SingleRoom.prototype = new Room();
SingleRoom.prototype.constructor = SingleRoom;
SingleRoom.prototype.count = 3;
var sr1 = new SingleRoom(2);
if(sr1.book() === false){
console.log("Could not book room");
}
我得到的「this.prototype.count」以下錯誤:無法讀取的不確定
任何想法,問題是財產計數?
謝謝!
'this.count'?爲什麼你要在子類中定義count,但是在超類方法中使用它呢? – Oriol
您不使用'this.prototype。*'來訪問原型屬性。 – zzzzBov
SingleRoom是從SingleRoom繼承嗎? – leaf