質問編集履歴

7

分かってるようで分かっていないことを追記

2018/04/16 13:19

投稿

murabito
murabito

スコア108

test CHANGED
File without changes
test CHANGED
@@ -163,3 +163,51 @@
163
163
  # ★ 分かってること・分かったこと
164
164
 
165
165
  - WeakMapのキー以外から参照されていないものはガベージコレクションの対象になる。(WeakMapは参照カウントを増やさないみたいなイメージ)
166
+
167
+
168
+
169
+ # ★ 分かってるようで分かっていないこと
170
+
171
+
172
+
173
+ > MapにしろWeakMapにしろ、キーにオブジェクトをなぜ使う必要があるのかが分からない。
174
+
175
+
176
+
177
+ と、冒頭の「分からないこと・知りたいこと」に追加しましたが、キーをオブジェクトにするということは、リレーショナルデータベースみたいなのをイメージすれば良いのかなと思ったのですが、こういう捉え方はどうなのか。。。
178
+
179
+
180
+
181
+ ```
182
+
183
+ let authorA = {
184
+
185
+ id: 1,
186
+
187
+ name: 'xxx'
188
+
189
+ }
190
+
191
+
192
+
193
+ let articles = [
194
+
195
+ {id: 1, title: 'aaa'},
196
+
197
+ {id: 2, title: 'bbb'}
198
+
199
+ ]
200
+
201
+
202
+
203
+ let wmap = new WeakMap();
204
+
205
+ wmap.set(authorA, articles);
206
+
207
+ console.log(wmap.get(authorA));
208
+
209
+ // [ { id: 1, title: 'aaa' },
210
+
211
+ // { id: 2, title: 'bbb' } ]
212
+
213
+ ```

6

分からないこと2を追加

2018/04/16 13:19

投稿

murabito
murabito

スコア108

test CHANGED
File without changes
test CHANGED
@@ -2,9 +2,13 @@
2
2
 
3
3
 
4
4
 
5
- WeakMapの使い道が分からなかったり、これを使うと何が良いのかが分かりません。
5
+ 1. WeakMapの使い道が分からなかったり、これを使うと何が良いのかが分かりません。
6
6
 
7
7
  そこをクリアにしたいです。
8
+
9
+
10
+
11
+ 2. MapにしろWeakMapにしろ、キーにオブジェクトをなぜ使う必要があるのかが分からない。(ということがよく分かっていないのだと後になって気づきました)
8
12
 
9
13
 
10
14
 

5

Objectの場合のコードに誤りがあったので修正

2018/04/16 13:06

投稿

murabito
murabito

スコア108

test CHANGED
File without changes
test CHANGED
@@ -144,13 +144,13 @@
144
144
 
145
145
 
146
146
 
147
- delete y;
147
+ delete x.y;
148
148
 
149
149
 
150
150
 
151
- console.log(Object.keys(x)); // ['y']
151
+ console.log(Object.keys(x)); // []
152
152
 
153
- console.log(x.hasOwnProperty('y')); // true - weakMapと同じのようです。
153
+ console.log(x.hasOwnProperty('y')); // false
154
154
 
155
155
  ```
156
156
 

4

分かってること・分かったことを追記

2018/04/16 13:04

投稿

murabito
murabito

スコア108

test CHANGED
File without changes
test CHANGED
@@ -153,3 +153,9 @@
153
153
  console.log(x.hasOwnProperty('y')); // true - weakMapと同じのようです。
154
154
 
155
155
  ```
156
+
157
+
158
+
159
+ # ★ 分かってること・分かったこと
160
+
161
+ - WeakMapのキー以外から参照されていないものはガベージコレクションの対象になる。(WeakMapは参照カウントを増やさないみたいなイメージ)

3

objectの例を追加

2018/04/15 08:47

投稿

murabito
murabito

スコア108

test CHANGED
File without changes
test CHANGED
@@ -119,3 +119,37 @@
119
119
  //weakMapにはそもそもkeys()メソッドはない。
120
120
 
121
121
  ```
122
+
123
+
124
+
125
+ # Object
126
+
127
+ ```
128
+
129
+ let x = {
130
+
131
+ y: {
132
+
133
+ id: 1
134
+
135
+ }
136
+
137
+ }
138
+
139
+
140
+
141
+ console.log(Object.keys(x)); // ['y']
142
+
143
+ console.log(x.hasOwnProperty('y')); // true
144
+
145
+
146
+
147
+ delete y;
148
+
149
+
150
+
151
+ console.log(Object.keys(x)); // ['y']
152
+
153
+ console.log(x.hasOwnProperty('y')); // true - weakMapと同じのようです。
154
+
155
+ ```

2

誤字

2018/04/15 08:28

投稿

murabito
murabito

スコア108

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
 
14
14
 
15
- **1.WeakMapについて以下の記事を呼んで、一応理解はした気はします。ただ、使い道メリットがイメージ出来ていません。**
15
+ **1.WeakMapについて以下の記事を呼んで、一応理解はした気はします。ただ、使い道メリットがイメージ出来ていません。**
16
16
 
17
17
 
18
18
 

1

補足

2018/04/15 08:24

投稿

murabito
murabito

スコア108

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
 
14
14
 
15
- **1.WeakMapについて以下の記事を呼んで、一応理解はした気はします。**
15
+ **1.WeakMapについて以下の記事を呼んで、一応理解はした気はします。ただ、使い道はメリットがイメージ出来ていません。**
16
16
 
17
17
 
18
18