回答編集履歴
2
表現の修正
answer
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
|
12
12
|
> もしメソッドが副作用を起こさないようにするにはプライベート変数を使うべきではないのでは?とも思ってしまいますがプライベート変数を使わないことができません。
|
13
13
|
|
14
|
-
そのコードはプライベートプロパティをコーディング規約で縛る実装であり、スコープは公開プロ
|
14
|
+
そのコードはプライベートプロパティをコーディング規約で縛る実装であり、スコープは公開プロパティと変わりません。
|
15
15
|
`Object.keys()` でプライベートプロパティを列挙出来ますし、プライベートプロパティを参照させるべきではないメソッドからも参照出来ます。
|
16
16
|
|
17
17
|
比較論としては、`Object.defineProperty` で列挙不可能にしたり、`WeakMap` を使用してスコープを制限する実装がより好ましいと思います。
|
1
表現の修正
answer
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
`this` 値を変化させる関数は副作用があります。
|
4
4
|
|
5
5
|
全関数に参照透過性を持たせるなら、`class` を諦め、静的関数のみを使用する必要があります。
|
6
|
-
しかし、その為にはビルトイン関数のインスタンスメソッドを封印する
|
6
|
+
しかし、その為にはビルトイン関数のインスタンスメソッドを封印する必要があり、JavaScriptの大半の機能を犠牲にします。
|
7
7
|
|
8
8
|
### スコープ
|
9
9
|
|