

参考書とwebで学習でプロトタイプチェーンの勉強する中で `constructor` プロパティについての説明として、以下のような記載がありました。

> プロトタイプ継承している場合、constructorプロパティが示すものは、継承元のクラスとなる

そこで、以下の constructor プロパティを使った、二つのコードを見てください。

### 参考書にあったコード

[code]

    var Animal1 = function() {};
    var Hamster = function() {};
    Hamster.prototype = new Animal1();
    
    var hamster = new Hamster();
    console.log(hamster.constructor);
    //結果:Animal1
[/code]

### webにあったコード

[code]

    class Animal{};
    
    //Animalから継承
    class Rabbit extends Animal{};
    
    //Rabbitをインスタンス化
    const rabbit = new Rabbit();
    
    console.log(rabbit.constructor); 
    //結果:Rabbit
[/code]

## ここで質問があります。

### extendsはプロトタイプ継承のシンタックスシュガーではないのですか？

webのコードでextendsを使いAnimalを継承しているのrabbit.constructorの結果はAnimalだと思いました。


CC BY-SA 4.0
2021-02-11T14:27:32.197
73938
2021-02-12T00:23:37.673
2021-02-12T00:23:37.673
3060
43922
question
javascript
extendsとプロトタイプを使った継承に違いはありますか？