teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

さらに表現の変更

2020/06/16 10:34

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37468

answer CHANGED
@@ -1,6 +1,8 @@
1
- MDNにもあまりはっきりと書いていないので困るのですが、`super()`をコンストラクタ内で使うと、親クラスのコンストラクタが返すものを**thisに上書き**する、という理解をするとわかりやすいと思います。`super()`が返すものをコンソールで見てみると納得できるかもしれません。
1
+ MDNにもあまりはっきりと書いていないので困るのですが、`super()`をコンストラクタ内で使うと、親クラスのコンストラクタが返すものを**`this`に上書き**する、という理解をするとわかりやすいと思います。`super()`が返すものをコンソールで見てみると納得できるかもしれません。
2
2
 
3
- 親クラスのコンストラクタはインスタンスを返しまから、子クラスのコンストラクタでそのインスタンスを返してやれば、親クラスのコンストラクタの振る舞いを継承した子クラスのインスタンスを返すことができる、という寸法です。
3
+ 親クラスのコンストラクタはインスタンスを返すので、子クラスのコンストラクタで受けて**必要なプロパティ上書きして**から返してやれば、親クラスのコンストラクタの振る舞いを継承した子クラスのインスタンスを返すことができる、という寸法です。
4
4
 
5
+ つまり、**上書きするのは`super()`の後**、ということです。
6
+
5
7
  参考:
6
8
  [https://tc39.es/ecma262/#_ref_11434](https://tc39.es/ecma262/#_ref_11434)

1

表現の変更

2020/06/16 10:34

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37468

answer CHANGED
@@ -1,4 +1,4 @@
1
- MDNにもあまりはっきりと書いていないので困るのですが、`super()`をコンストラクタ内で使うと、`this`に親クラスのコンストラクタが返すものをセットする、という理解をするとわかりやすいと思います。`super()`が返すものをコンソールで見てみると納得できるかもしれません。
1
+ MDNにもあまりはっきりと書いていないので困るのですが、`super()`をコンストラクタ内で使うと、親クラスのコンストラクタが返すものを**thisに上書き**する、という理解をするとわかりやすいと思います。`super()`が返すものをコンソールで見てみると納得できるかもしれません。
2
2
 
3
3
  親クラスのコンストラクタはインスタンスを返しますから、子クラスのコンストラクタでそのインスタンスを返してやれば、親クラスのコンストラクタの振る舞いを継承した子クラスのインスタンスを返すことができる、という寸法です。
4
4