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

質問編集履歴

2

追記

2020/09/01 23:50

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -43,4 +43,11 @@
43
43
 
44
44
  このとき```c1.p2```には```'p2'```と予想通りの値が格納されているのですが、```c2.p2```には```'a'```が格納されています。```Child2```の```init()```が呼ばれているため```'p2'```という値が格納されるだろうと思っていましたが、なぜこのような違いが生まれるのでしょうか。
45
45
 
46
- また、```p2```をコンストラクタで初期化し、さらに```init()```関数で```p2```の値を変更するにはどうしたら良いでしょうか。
46
+ また、```p2```をコンストラクタで初期化し、さらに```init()```関数で```p2```の値を変更するにはどうしたら良いでしょうか。
47
+
48
+ # 問題の背景
49
+ もともとのコードでは```Child1```のように、```constructor()```で```p2```を初期化していませんが、tsがjsにトランスパイルされることにより自動的に```constructor()```の中に
50
+ ```js
51
+ this.p2 = void 0
52
+ ```
53
+ と挿入されるため、```Child2```のような状況に陥ってしまいました。

1

タイトル

2020/09/01 23:50

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- JavaScript 継承について
1
+ JavaScript 継承について 子の値が更新されない
body CHANGED
File without changes