回答編集履歴

4

重複削除

2020/09/16 13:59

投稿

think49
think49

スコア18164

test CHANGED
@@ -222,14 +222,4 @@
222
222
 
223
223
 
224
224
 
225
- 私は「オブジェクト初期化子を使用してObject型のデータを初期化する」の意味で「オブジェクト初期化子を使用」と表現しています。
226
-
227
-
228
-
229
-
230
-
231
-
232
-
233
-
234
-
235
225
  Re: manusa360 さん

3

表現の修正

2020/09/16 13:59

投稿

think49
think49

スコア18164

test CHANGED
@@ -212,7 +212,7 @@
212
212
 
213
213
  がより汎用的です。
214
214
 
215
- この場合、「プロパティに整数値のみを使用している為、オブジェクト初期化子(new Object)でも実質的に問題はない」等、採用理由がある場合も思います。
215
+ この場合、「プロパティに整数値のみを使用している為、オブジェクト初期化子(new Object)でも実質的に問題はない」等、採用理由がある場合もあります。
216
216
 
217
217
  生成されたオブジェクトの性質を正確に示すためにも「オブジェクト初期化子でオブジェクトを生成していること」を私は強調します。
218
218
 

2

オブジェクト初期化子

2020/09/16 13:58

投稿

think49
think49

スコア18164

test CHANGED
@@ -140,4 +140,96 @@
140
140
 
141
141
 
142
142
 
143
+ ### オブジェクト初期化子
144
+
145
+
146
+
147
+ @Zuishin さんのコメントに対しての返答。
148
+
149
+ (長文なので、回答に追記します)
150
+
151
+
152
+
153
+ > 以前も気になったんですが、オブジェクト「初期化子」とオブジェクトを混同していませんか?
154
+
155
+
156
+
157
+ 私は「オブジェクト初期化子を使用してObject型のデータを初期化する」の意味で「オブジェクト初期化子を使用」と表現しています。
158
+
159
+
160
+
161
+ **(1) オブジェクト**
162
+
163
+ この文脈で「オブジェクト」と表現すると、
164
+
165
+
166
+
167
+ - new Object と受け取る人
168
+
169
+ - Object 型のデータと受け取る人
170
+
171
+
172
+
173
+ に分類されて解釈に違いが現れる為、曖昧な表現を私は避けます。
174
+
175
+ (私が読者なら、言葉通りに後者で解釈する事を試み、文脈を読み取って適宜読み替えます)
176
+
177
+ 私は「new Object」「オブジェクト初期化子」「Object型」を明確に使い分ける性質です。
178
+
179
+
180
+
181
+ **(2) オブジェクト初期化子とオブジェクト**
182
+
183
+ 「オブジェクト(Object型のデータ)」と「オブジェクト初期化子」では生成されるオブジェクトの範囲がまるで違います。
184
+
185
+ new Objectもnew Arrayも同様にObject型ですが、生成されたオブジェクトが持つ性質は全く違ったものになります。
186
+
187
+
188
+
189
+ - (A)「new Map」と「オブジェクト初期化子」
190
+
191
+ - (B)「new Map」と「オブジェクト」
192
+
193
+
194
+
195
+ 今回、私は (A) で対比しましたが、仮に (B) で対比された場合、私は「new Mapもオブジェクトなので、両者は比較対象になりません」と突っ込みを入れるでしょう。
196
+
197
+
198
+
199
+ **(3) 実用性**
200
+
201
+ 単純な「Object型のデータの入れ物」として扱う場合は、`new Object` にメリットはほとんどなく、
202
+
203
+
204
+
205
+ ```JavaScript
206
+
207
+ Object.create(null)
208
+
209
+ ```
210
+
211
+
212
+
213
+ がより汎用的です。
214
+
215
+ この場合、「プロパティに整数値のみを使用している為、オブジェクト初期化子(new Object)でも実質的に問題はない」等、採用理由がある場合も思います。
216
+
217
+ 生成されたオブジェクトの性質を正確に示すためにも「オブジェクト初期化子でオブジェクトを生成していること」を私は強調します。
218
+
219
+
220
+
221
+ - [[JavaScript] オブジェクト, Map, WeakMap の使い分け方.md · GitHub](https://gist.github.com/think49/31a2cedb5c653fd18086ade669c04323)
222
+
223
+
224
+
225
+ 私は「オブジェクト初期化子を使用してObject型のデータを初期化する」の意味で「オブジェクト初期化子を使用」と表現しています。
226
+
227
+
228
+
229
+
230
+
231
+
232
+
233
+
234
+
143
235
  Re: manusa360 さん

1

ハッシュマップ -> マップ

2020/09/16 13:57

投稿

think49
think49

スコア18164

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  「常にparentがchildrenに先行する条件」なら、@jun68yktさんと同じ方向性を。
8
8
 
9
- 順序に規則性がないなら、ハッシュマップ生成処理を独立させます。
9
+ 順序に規則性がないなら、マップ生成処理を独立させます。
10
10
 
11
11
 
12
12