Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我是否误解了继承的概念?_Javascript - Fatal编程技术网

Javascript 我是否误解了继承的概念?

Javascript 我是否误解了继承的概念?,javascript,Javascript,我正试图找出继承的正确用法。在下面的代码中,我试图实例化我的ReadingMaterial类,并创建一个从ReadingMaterial继承的书籍和杂志数组。我在这里使用继承正确吗 //用构造函数定义我们的类 课堂阅读材料{ 构造器作者、类型、价格、标题{ this.author=作者; this.type=type; 这个价格=价格; this.title=标题; } } //包含两个不同图书的可变图书 var账簿=[ 新阅读材料:Tvede、Fagliteratur、399kr、Supert

我正试图找出继承的正确用法。在下面的代码中,我试图实例化我的ReadingMaterial类,并创建一个从ReadingMaterial继承的书籍和杂志数组。我在这里使用继承正确吗

//用构造函数定义我们的类 课堂阅读材料{ 构造器作者、类型、价格、标题{ this.author=作者; this.type=type; 这个价格=价格; this.title=标题; } } //包含两个不同图书的可变图书 var账簿=[ 新阅读材料:Tvede、Fagliteratur、399kr、Supertrends、, 新阅读材料Rasmmus Tantholdt,Fagliteratur,249kr,Medåbneøjne, 新阅读材料JUSSI Alder,Skønlitteratur,349kr,报价2117 ]; //允许您键入“ShowMagazine;”的功能在控制台中 //所以我们可以看我们的杂志 功能展示{ 控制台、日志; }; //包含2个不同弹匣的可变弹匣 变量库=[ 新阅读材料欧洲、马加辛、99kr、米克·根达尔、, damerne、Magasin、149kr、Boligindretning的新阅读材料 ]; //允许您键入“ShowMagazine;”的功能在控制台中 //所以我们可以看我们的杂志 功能展示杂志{ console.log杂志; };
当您有两个实体,其中一个从另一个派生时,就会发生继承。例如,当你从父母中继承眼睛颜色时,你们两个都有蓝眼睛

请看一看这个例子:

在您的示例中,您可以创建ReadingMaterial类,然后创建Magazine和Book之类的类,这些类将继承ReadingMaterial中的某些内容

继承是一个非常庞大的概念,有时是复杂的概念。很容易过度使用它,并将类扩展得太深,例如,Animal->Dog->Husky->AlaskanHusky,以及对实际情况的松散跟踪


我建议您获取更多有关的信息。

我在这里没有看到继承,只有两个ReadingMaterial对象数组。无论是书还是杂志,都没有独特的行为。你是。这里只有一个类,没有继承的。当然,新的ReadingMaterial实例确实继承自ReadingMaterial.prototype,但您没有在任何地方使用它。我认为您混淆了实例化和继承。
class Animal {
  constructor(legs) {
    this.legs = legs;
  }

  run() {
    console.log(`Runs on ${this.legs} legs`);
  }
}

class Dog extends Animal {
  bark() {
    console.log("Woof!");
  }
}

const d = new Dog(4);
d.run(); // <- uses `run` method from `Animal`
d.bark(); // <- uses its own method