回答編集履歴

2

例を追加

2019/01/30 04:23

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -19,6 +19,36 @@
19
19
  作ったプロパティに引数のdataを代入して保管します。
20
20
 
21
21
  当然グローバルスコープの`this.tripMembers`は手付かずになりますし、get関数はset関数と兄弟の関係にあるので取り出す事は不可能です
22
+
23
+
24
+
25
+ 別にthis越しに取りに行かんでも、普通に変数としてアクセスすれば、
26
+
27
+ 存在しない変数名の場合は上を探しにいくのでアクセスできますよ。
28
+
29
+ なのでsetやgetという概念自体が不要です。
30
+
31
+
32
+
33
+ ```JavaScript
34
+
35
+ var tripMembers = {};
36
+
37
+
38
+
39
+ function setTripMembers(data) { //setter
40
+
41
+ tripMembers = data;
42
+
43
+ }
44
+
45
+
46
+
47
+ setTripMembers({taro: {name: "taro"}});
48
+
49
+ console.log(tripMembers); // {taro: {name: "taro"}}
50
+
51
+ ```
22
52
 
23
53
 
24
54
 

1

変な箇所修正

2019/01/30 04:23

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -1,28 +1,24 @@
1
- あー、そりゃset動かんわとい感じですね。
1
+ あー、これJSの難解仕様の一つである「this解決」が原因でしょうね。
2
-
3
- 原因はthis解決ですね。
4
2
 
5
3
 
6
4
 
7
- getで調査するとき、`this.tripMembers`を探しに行くが別にその関数内で宣言されたわけではないので存在しない
5
+ getの関数内で`this.tripMembers`を探しに行ってますね
8
6
 
9
- 存在しなければ何処を探しにくか?
7
+ その結果ちゃんと`{}`とう空のオブジェクトが帰ってきます。
10
8
 
11
- のスコープです。
9
+ 理由はgetのスコープの関係、スコープ内に存在しない場合は上のスコープへ値を探しに行きます。
12
10
 
13
- そうして上へ辿りつつ、グローバルスコープに到達することで`this.tripMembers`が見つかるので空のオブジェクトが帰ってきます。
11
+ 最終的にグローバルスコープに到達することで`this.tripMembers`が見つかるので空のオブジェクトが帰ってきます。
14
12
 
15
13
 
16
14
 
17
- setのこれは代入演算子ですね。
18
-
19
15
  setは関数なのでthisそのものは存在しています。
20
16
 
21
- なので`setTripMembers`スコープの中に`this.tripMembers`というプロパティを生成し、
17
+ 代入演算子を利用したことで`setTripMembers`スコープの中に`this.tripMembers`というプロパティを生成
22
18
 
23
- 引数のdataを代入して保管します。
19
+ 作ったプロパティに引数のdataを代入して保管します。
24
20
 
25
- 当然グローバルスコープの`this.tripMembers`は手付かずになるでしょう。
21
+ 当然グローバルスコープの`this.tripMembers`は手付かずになりますし、get関数はset関数と兄弟の関係にあ取り出す事は不可能です
26
22
 
27
23
 
28
24
 
@@ -38,7 +34,7 @@
38
34
 
39
35
  ES6以降のJSではthisを使わずにプログラミングしていける事を目指して、
40
36
 
41
- this極力作らないし、使わずに済むような機能や構文が多く採用されています。
37
+ this極力作らないし、使わずに済むような機能や構文が多く採用されています。
42
38
 
43
39
  なので新しいJSのプログラミングではthisは不要です。
44
40
 
@@ -48,4 +44,4 @@
48
44
 
49
45
  thisはJS上で4種類の意味合いに変化するよくわからん実装になってます。
50
46
 
51
- [Ninjaの極意](https://www.amazon.co.jp/dp/B00ESXY9MA/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)のような書籍を読んで学習してください。
47
+ 私も説明しきれる程には詳しくないので、[Ninjaの極意](https://www.amazon.co.jp/dp/B00ESXY9MA/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)のような書籍を読んで学習してください。