Prototype 的用處
Opened this issue · 2 comments
sprewell20051116 commented
看起來應該就是做 Class 的擴展的方便用法
課堂中使用的 Wizard Class
function Wizards (name, house, pet) {
this.name = name;
this.house = house;
this.pet = pet;
this.greet = () => `I'm ${this.name} from ${this.house}`;
}
後面想要在這個 Class 中新增一個 Member,可以不用直接去更動到 Wizard Class 的類別宣告,而是使用 prototype
的這個關鍵字來作為擴展
Wizards.prototype.pet_name;
let Harry = new Wizards("Harry Potter", "Gryffindor", "Owl");
Harry.pet_name = "Hedwig"
console.log(Harry);
//Wizards {name: "Harry Potter", house: "Gryffindor", pet: "Owl", pet_name: "Hedwig", greet: ƒ}
sprewell20051116 commented
prototype
的這個關鍵字也可以拿來擴展 Class 的 Method
Wizards.prototype.info = function() {
return `I have a ${this.pet} name ${this.pet_name}`
};