回答編集履歴

3

コード例を追加しました

2017/10/09 10:54

投稿

tatsuya6502
tatsuya6502

スコア2035

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()`に変更しました

2017/10/09 10:54

投稿

tatsuya6502
tatsuya6502

スコア2035

test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
 
24
24
 
25
- 一方、Dateオブジェクトの`getFullYear()`はご指摘の通り参照透過性がありません。なにも引数を与えてないのに、`new Date()`を実行したによって出力が変わります。
25
+ 一方、`new Date()`はご指摘の通り参照透過性がありません。なにも引数を与えてないのに実行した時点によってそれ保持する値(日付)が変わります。
26
26
 
27
27
 
28
28
 

1

説明を少し修正しました

2017/10/09 10:52

投稿

tatsuya6502
tatsuya6502

スコア2035

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