大家好

在 javascript 中如何實現類別繼承?

在一些其他語言中可能蠻直覺的

但是在 JS處理起來好像沒這麼直覺

不過可能有更好的方法我不知道就是 

可以參考以下程式:

// 父類別
function Animal(name, legs) {
    this.name = name;
    this.legs = legs;
}
// 父類別的函式
Animal.prototype.sayHello = function () {
    console.log("Hello, I'm " + this.name);
};

// 子類別
function Dog(name, legs, coatColor) {
    // 呼叫父類別的建構函式,並繼承屬性
    Animal.call(this, name, legs);
    this.coatColor = coatColor; // 狗的毛色
}

// 使用 Object.create 創建子類別的原型,並繼承父類別的原型
Dog.prototype = Object.create(Animal.prototype);

// 重新指定 constructor 屬性為狗
Dog.prototype.constructor = Dog;

// 初始一個 子類別.並且給予初始值 var myDog = new Dog("Buddy", 4, "Golden"); //呼叫父類別的函式 myDog.sayHello(); // Hello, I'm Buddy //呼叫父類別的數值 console.log("Dog have " + myDog.legs + " legs "); //呼叫子類別的數值 console.log("Dog coat color is " + myDog.coatColor);

給大家參考囉~