ES6 - 继承
优质
小牛编辑
131浏览
2023-12-01
为了说明这一点,我们创建一个动物园应用,其中创建鸟类。在经典继承中,我们定义一个基类,然后将其子类化以创建一个派生类。
类定义了Penguin
类继承的方法walk
,并且可以被Penguin
对象的实例使用。 同样,Penguin
类定义了不能用于Bird
对象的方法swim
。 继承从上到下从基类到它的子类。
对象初始化
对象创建的顺序从它的基类开始,然后向下移动到任何子类。
// JavaScript classical inheritance.
// Bird constructor
function Bird(weight, height) {
this.weight = weight;
this.height = height;
}
// Add method to Bird prototype.
console.log("walk!");
};
// Penguin constructor.
function Penguin(weight, height) {
Bird.call(this, weight, height);
}
// Prototypal inheritance (Penguin is-a Bird).
Penguin.prototype = Object.create( Bird.prototype );
Penguin.prototype.constructor = Penguin;
// Add method to Penguin prototype.
Penguin.prototype.swim = function() {
console.log("swim!");
};
// Create a Penguin object.
let penguin = new Penguin(50,10);
// Calls method on Bird, since it's not defined by Penguin.
penguin.walk(); // walk!
penguin.swim(); // swim!