ES6 - 继承

优质
小牛编辑
135浏览
2023-12-01

为了说明这一点,我们创建一个动物园应用,其中创建鸟类。在经典继承中,我们定义一个基类,然后将其子类化以创建一个派生类。

类定义了Penguin类继承的方法walk,并且可以被Penguin对象的实例使用。 同样,Penguin类定义了不能用于Bird对象的方法swim。 继承从上到下从基类到它的子类。

对象初始化

对象创建的顺序从它的基类开始,然后向下移动到任何子类。

  1. // JavaScript classical inheritance.
  2. // Bird constructor
  3. function Bird(weight, height) {
  4. this.weight = weight;
  5. this.height = height;
  6. }
  7. // Add method to Bird prototype.
  8. console.log("walk!");
  9. };
  10. // Penguin constructor.
  11. function Penguin(weight, height) {
  12. Bird.call(this, weight, height);
  13. }
  14. // Prototypal inheritance (Penguin is-a Bird).
  15. Penguin.prototype = Object.create( Bird.prototype );
  16. Penguin.prototype.constructor = Penguin;
  17. // Add method to Penguin prototype.
  18. Penguin.prototype.swim = function() {
  19. console.log("swim!");
  20. };
  21. // Create a Penguin object.
  22. let penguin = new Penguin(50,10);
  23. // Calls method on Bird, since it's not defined by Penguin.
  24. penguin.walk(); // walk!
  25. penguin.swim(); // swim!