JavaScript中的差异继承是什么

JavaScript中的差异继承是什么,javascript,class,inheritance,constructor,prototype,Javascript,Class,Inheritance,Constructor,Prototype,当我遇到Eric Elliott的这篇文章时,我正试图理解JS中的原型继承 读完这篇文章后,我学到了一些东西,我想检查一下我的理解是否正确 当我们使用原型链接对象时,会使用差异继承(原型继承中的三种类型之一),也就是说,如果在对象上找不到属性,则会将查找委托给它链接到的委托原型。此继承使用引用进行查找。以下是不同的方式: 构造函数函数: 类(构造函数上的语法糖): 工厂功能: 任何更正或确认都将不胜感激。这是我第一次在javascript中听到“差异继承”这个术语。最后,你只是在创建一个原型链,

当我遇到Eric Elliott的这篇文章时,我正试图理解JS中的原型继承

读完这篇文章后,我学到了一些东西,我想检查一下我的理解是否正确

当我们使用原型链接对象时,会使用差异继承(原型继承中的三种类型之一),也就是说,如果在对象上找不到属性,则会将查找委托给它链接到的委托原型。此继承使用引用进行查找。以下是不同的方式:

  • 构造函数函数:
  • 类(构造函数上的语法糖):
  • 工厂功能:

  • 任何更正或确认都将不胜感激。

    这是我第一次在javascript中听到“差异继承”这个术语。最后,你只是在创建一个原型链,这就是所谓的原型继承。我们越了解JS,就越了解我们不了解JS您将“差异继承”称为三种原型继承之一。据我所知,这是javascript中唯一的原型继承。其他两种类型是什么?串联继承和函数继承。请阅读这篇文章以供参考。这是我第一次在javascript中听到“差异继承”这个术语。最后,你只是在创建一个原型链,这就是所谓的原型继承。我们越了解JS,就越了解我们不了解JS您将“差异继承”称为三种原型继承之一。据我所知,这是javascript中唯一的原型继承。其他两种类型是什么?串联继承和函数继承。请阅读这篇文章以供参考。退房
    function Cat(param) {
      this.name = param;
    }
    Cat.prototype.meow = function meow() {};
    
    function SuperCat(param){
      Cat.call(this, param);
    }
    SuperCat.prototype = Object.create(Cat.prototype);
    SuperCat.prototype.constructor = SuperCat;
    const superCat = new SuperCat('kitty');
    
    class Cat{
      constructor(param){
        this.name = param;
      }
      meow(){}
    }
    
    class SuperCat extends Cat{
      constructor(param){
        super(param);
      }
    }
    const superCat = new SuperCat('kitty');
    
    const proto = {
      meow(){
        console.log(this.name);
      }
    }
    const Cat = (name) => Object.assign(Object.create(proto), {name});
    const SuperCat = (name) => Object.create(Cat(name));
    
    const superCat = SuperCat("kitty")