質問編集履歴
2
追記
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
タイトル
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
JavaScript 継承について
|
1
|
+
JavaScript 継承について 子の値が更新されない
|
body
CHANGED
File without changes
|