回答編集履歴

1

追記

2018/01/02 07:06

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -73,3 +73,73 @@
73
73
 
74
74
 
75
75
  単に文法とコード上の意味だけで論じてもかまわないと思うのですが、どのような情報をどう管理したいのか(ユースケース)の想定を明確にして論じると、より有意義な議論になるような気がします。つまり閲覧者がどこにポイントを置くかを考えやすい(回答しやすい)と思います。
76
+
77
+
78
+
79
+ ---
80
+
81
+
82
+
83
+ 追記:
84
+
85
+
86
+
87
+ 追記された部分を拝見しましたが、BeatStarさんのコメントのようなアプローチで整理できる気がしました。
88
+
89
+
90
+
91
+ もしアクセスする情報ごとにメソッドのグループが単純に分類できるようならそれぞれを囲むスコープで定義するという方法もある気がします。しかしそんなにはっきりと分かれるようなら元々別のモジュールとして定義できる気がするのでそもそも解にならないのかも知れませんね・・・。それに分かり易さの点からいえば下記のv1, v2, ...のようなコンテキストをある論理的な塊のオブジェクトとしてまとめ、特にmyModule内部の関数群からそうまで厳密には区別しなくてよい気もします。そのあたりコンテキストのライフサイクルによっても適切さが変化するような気はします(下記は単純にA,Bそれぞれに静的なコンテキストだけが必要とされるケースしか表していません)
92
+
93
+
94
+
95
+ ```javascript
96
+
97
+ // グループA, Bがあったとして
98
+
99
+
100
+
101
+ function myModule() {
102
+
103
+ var a1, a2, b1, b2;
104
+
105
+
106
+
107
+ [ a1, a2 ] = (function () {
108
+
109
+ var v1, v2, v3, ...; // a1, a2の共通コンテキスト
110
+
111
+
112
+
113
+ function a1() { ... }
114
+
115
+ function a2() { ... }
116
+
117
+ return [a1, a2];
118
+
119
+ })();
120
+
121
+
122
+
123
+ [ b1, b2 ] = (function () {
124
+
125
+ var v1, v2, v3, ...; // b1, b2の共通コンテキスト
126
+
127
+
128
+
129
+ function b1() { ... }
130
+
131
+ function b2() { ... }
132
+
133
+ return [b1, b2];
134
+
135
+ })();
136
+
137
+
138
+
139
+ // a1(), a2(), b1(), b2()などを用いた論理
140
+
141
+ ...
142
+
143
+ }
144
+
145
+ ```