標籤:子類 log bre uri func function throw nts 咖啡
var Beverage = function(){};Beverage.prototype.boilWater = function(){console.log("把水煮沸");};Beverage.prototype.brew = function(){throw new Error("子類必須重寫該方法");};Beverage.prototype.pourInCup = function(){throw new Error("子類必須重寫該方法");};Beverage.prototype.addCondiments = function(){throw new Error("子類必須重寫該方法");};Beverage.prototype.customerWantsCondiments = function(){return true;};Beverage.prototype.init = function(){this.boilWater();this.brew();this.pourInCup();if(this.customerWantsCondiments){this.addCondiments();}};var Coffee = function(){};Coffee.prototype = new Beverage();//繼承父類BeverageCoffee.prototype.boilWater = function(){console.log("把水煮沸");};Coffee.prototype.brew = function(){console.log("用沸水沖泡咖啡");};Coffee.prototype.pourInCup = function(){console.log("把咖啡倒進杯子");};Coffee.prototype.addCondiments = function(){console.log("加糖和牛奶");};var Tea = function(){};Tea.prototype = new Beverage();//繼承父類BeverageTea.prototype.boilWater = function(){console.log("把水煮沸");};Tea.prototype.brew = function(){console.log("用沸水浸泡茶葉");};Tea.prototype.pourInCup = function(){console.log("把茶水倒進杯子");};Tea.prototype.addCondiments = function(){console.log("加入檸檬");};Tea.prototype.customerWantsCondiments = function(){return window.confirm("請問需要加調料嗎?");};var coffee = new Coffee();//執行個體化Coffeecoffee.init();var tea = new Tea();//執行個體化Teatea.init();
js原型與繼承