我通过一个问题与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