回答編集履歴
3
コード例を追加しました
test
CHANGED
@@ -26,4 +26,16 @@
|
|
26
26
|
|
27
27
|
|
28
28
|
|
29
|
+
```javascript
|
30
|
+
|
31
|
+
new Date();
|
32
|
+
|
33
|
+
new Date();
|
34
|
+
|
35
|
+
new Date();
|
36
|
+
|
37
|
+
```
|
38
|
+
|
39
|
+
|
40
|
+
|
29
41
|
参照透過性のある関数はテストが容易に行えますので、そのような関数の割合を増やしていくことで、バグの少ないプログラムを実現できます。
|
2
参照透過性のない関数の例を`getFullYear()`から`new Date()`に変更しました
test
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
|
24
24
|
|
25
|
-
一方、Date
|
25
|
+
一方、`new Date()`にはご指摘の通り参照透過性がありません。なにも引数を与えてないのに実行した時点によってそれが保持する値(日付)が変わります。
|
26
26
|
|
27
27
|
|
28
28
|
|
1
説明を少し修正しました
test
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
|
24
24
|
|
25
|
-
一方、Dateオブジェクトの`getFullYear()`はご指摘の通り参照透過性がありません。なにも引数を与えてないのに、
|
25
|
+
一方、Dateオブジェクトの`getFullYear()`はご指摘の通り参照透過性がありません。なにも引数を与えてないのに、`new Date()`を実行した年によって出力が変わります。
|
26
26
|
|
27
27
|
|
28
28
|
|