回答編集履歴
3
コード例を追加しました
answer
CHANGED
@@ -12,4 +12,10 @@
|
|
12
12
|
|
13
13
|
一方、`new Date()`にはご指摘の通り参照透過性がありません。なにも引数を与えてないのに実行した時点によってそれが保持する値(日付)が変わります。
|
14
14
|
|
15
|
+
```javascript
|
16
|
+
new Date();
|
17
|
+
new Date();
|
18
|
+
new Date();
|
19
|
+
```
|
20
|
+
|
15
21
|
参照透過性のある関数はテストが容易に行えますので、そのような関数の割合を増やしていくことで、バグの少ないプログラムを実現できます。
|
2
参照透過性のない関数の例を`getFullYear()`から`new Date()`に変更しました
answer
CHANGED
@@ -10,6 +10,6 @@
|
|
10
10
|
age(2000, thisYear);
|
11
11
|
```
|
12
12
|
|
13
|
-
一方、
|
13
|
+
一方、`new Date()`にはご指摘の通り参照透過性がありません。なにも引数を与えてないのに実行した時点によってそれが保持する値(日付)が変わります。
|
14
14
|
|
15
15
|
参照透過性のある関数はテストが容易に行えますので、そのような関数の割合を増やしていくことで、バグの少ないプログラムを実現できます。
|
1
説明を少し修正しました
answer
CHANGED
@@ -10,6 +10,6 @@
|
|
10
10
|
age(2000, thisYear);
|
11
11
|
```
|
12
12
|
|
13
|
-
一方、Dateオブジェクトの`getFullYear()`はご指摘の通り参照透過性がありません。なにも引数を与えてないのに、
|
13
|
+
一方、Dateオブジェクトの`getFullYear()`はご指摘の通り参照透過性がありません。なにも引数を与えてないのに、`new Date()`を実行した年によって出力が変わります。
|
14
14
|
|
15
15
|
参照透過性のある関数はテストが容易に行えますので、そのような関数の割合を増やしていくことで、バグの少ないプログラムを実現できます。
|