質問するログイン新規登録

質問編集履歴

1

冪等性の部分を削除しました

2020/12/09 01:14

投稿

wieee
wieee

スコア11

title CHANGED
File without changes
body CHANGED
@@ -32,7 +32,7 @@
32
32
  ```
33
33
  ### 質問詳細
34
34
  この場合`this._value`の値が変わるとcalcFuncメソッドの結果が変わってしまいます。
35
- これは副作用を起こすメソッドということだと思うのですが、様々なサイトでは「関数の外で定義された変数によって結果が異なるので参照透過性がない・冪等性がない」と書かれています。
35
+ これは副作用を起こすメソッドということだと思うのですが、様々なサイトでは「関数の外で定義された変数によって結果が異なるので参照透過性がない」と書かれています。
36
36
  ```js
37
37
  const test = new TestClass();
38
38
  test.updateValue(2);
@@ -42,8 +42,8 @@
42
42
  test.calcFunc(3); // 9
43
43
  ```
44
44
  この例のコードが簡単すぎてあまり良くない例かもしれません。
45
- ですが、プライベート変数に値を保持しておいて、メソッドの戻り値がプライベート変数によって変わるのは冪等性がない(=副作用を起こすのでこれはダメなコーディングでしょうか?
45
+ ですが、プライベート変数に値を保持しておいて、メソッドの戻り値がプライベート変数によって変わるのは副作用を起こすのでこれはダメなコーディングでしょうか?
46
- 副作用、冪等性、参照透過性を解説しているサイトはどれも関数について書かれていて、クラスのメソッドについてではない気がしています。
46
+ 副作用、参照透過性を解説しているサイトはどれも関数について書かれていて、クラスのメソッドについてではない気がしています。
47
47
  もしメソッドが副作用を起こさないようにするにはプライベート変数を使うべきではないのでは?とも思ってしまいますがプライベート変数を使わないことができません。
48
48
 
49
49
  どのようにしたらメソッドに副作用を起こさないように書けるのでしょうか?