回答編集履歴

3

a

2018/04/10 04:24

投稿

HayatoKamono
HayatoKamono

スコア2415

test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- [Object.freeze()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze)を使えば、オブジェクトを不変に出来ますが、以下のデモコードの通り、ネストされたオブジェクトは可変のままになります。
13
+ [Object.freeze()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze)を使えば、配列やオブジェクトを不変に出来ますが、以下のデモコードの通り、ネストされている場合は可変のままになります。
14
14
 
15
15
 
16
16
 

2

a

2018/04/10 04:24

投稿

HayatoKamono
HayatoKamono

スコア2415

test CHANGED
@@ -13,6 +13,50 @@
13
13
  [Object.freeze()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze)を使えば、オブジェクトを不変に出来ますが、以下のデモコードの通り、ネストされたオブジェクトは可変のままになります。
14
14
 
15
15
 
16
+
17
+
18
+
19
+ ## 配列
20
+
21
+ ```
22
+
23
+ // #1
24
+
25
+ const list1 = []
26
+
27
+ list1.push(1);
28
+
29
+ console.log(list1); //[ 1 ]
30
+
31
+
32
+
33
+ // #2
34
+
35
+ const list2 = [];
36
+
37
+ Object.freeze(list2);
38
+
39
+ //list2.push(2); //TypeError: Can't add property 0, object is not extensible
40
+
41
+
42
+
43
+
44
+
45
+ // #3
46
+
47
+ const list3 = [[]];
48
+
49
+ Object.freeze(list3);
50
+
51
+ list3[0].push(3);
52
+
53
+ console.log(list3); // [ [ 3 ] ]
54
+
55
+ ```
56
+
57
+
58
+
59
+ ## オブジェクト
16
60
 
17
61
  ```
18
62
 

1

a

2018/04/10 04:21

投稿

HayatoKamono
HayatoKamono

スコア2415

test CHANGED
@@ -10,9 +10,13 @@
10
10
 
11
11
 
12
12
 
13
+ [Object.freeze()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze)を使えば、オブジェクトを不変に出来ますが、以下のデモコードの通り、ネストされたオブジェクトは可変のままになります。
14
+
15
+
16
+
13
17
  ```
14
18
 
15
- //
19
+ // #1
16
20
 
17
21
  const obj1 = {
18
22
 
@@ -28,7 +32,7 @@
28
32
 
29
33
 
30
34
 
31
- //
35
+ // #2
32
36
 
33
37
  const obj2 = {
34
38
 
@@ -46,7 +50,7 @@
46
50
 
47
51
 
48
52
 
49
- //
53
+ // #3
50
54
 
51
55
  const obj3 = {
52
56