回答編集履歴
2
最後の部分を調整
test
CHANGED
@@ -56,7 +56,15 @@
|
|
56
56
|
|
57
57
|
2個目: 関数の外から変数を弄る
|
58
58
|
|
59
|
-
|
59
|
+
この書き方は外の変数に依存するので使い勝手が非常に悪いです。
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
それとコードを見れば分かりますが、
|
64
|
+
|
65
|
+
いつの間にか`flags.test`の値がfalseになったのかコードからは中々読み取れません。
|
66
|
+
|
67
|
+
従ってこういう書き方を多くの場面でやっているプロジェクトは技術的負債で進捗が大幅に遅延することになります。
|
60
68
|
|
61
69
|
|
62
70
|
|
@@ -96,7 +104,13 @@
|
|
96
104
|
|
97
105
|
3個目: オブジェクトの参照を渡して中から弄る
|
98
106
|
|
107
|
+
|
108
|
+
|
99
|
-
|
109
|
+
ダサいですがありって感じですかね。
|
110
|
+
|
111
|
+
これもflags.testが勝手に書き換わるのが何処かは分かりかねますが、
|
112
|
+
|
113
|
+
testの引数がflagsを欲しがっている事が分かるので、まだ推測し易いと言えるでしょう。
|
100
114
|
|
101
115
|
|
102
116
|
|
@@ -120,7 +134,7 @@
|
|
120
134
|
|
121
135
|
console.log("sample");
|
122
136
|
|
123
|
-
test();
|
137
|
+
test(flags);
|
124
138
|
|
125
139
|
if (flags.test) return; // 質問文的にこの1行が抜けないのであまり意味なし?
|
126
140
|
|
@@ -136,7 +150,21 @@
|
|
136
150
|
|
137
151
|
4個目: 成功した時に今後やりたい動作を関数として定義してやる
|
138
152
|
|
153
|
+
|
154
|
+
|
139
|
-
|
155
|
+
ちょっとトリッキーですが、これは多くのオブジェクト指向言語のDIコンテナに似た解決方法です。
|
156
|
+
|
157
|
+
|
158
|
+
|
159
|
+
JavaScriptは言語仕様的に関数が第一級オブジェクトなので、
|
160
|
+
|
161
|
+
配列等と同様に変数に格納・引数に設定・戻り値として返す事が可能です。
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
上級者が質問文の条件で何とかやれと言われたら、
|
166
|
+
|
167
|
+
testに関数を引数としてよこすようにし、こういう形で解決を目指すことになるかと思います。
|
140
168
|
|
141
169
|
|
142
170
|
|
@@ -146,7 +174,13 @@
|
|
146
174
|
|
147
175
|
var test = function (cb) {
|
148
176
|
|
149
|
-
//
|
177
|
+
// 条件を満たしたときのみコールバック関数を実行
|
178
|
+
|
179
|
+
if (true) {
|
180
|
+
|
181
|
+
cb();
|
182
|
+
|
183
|
+
}
|
150
184
|
|
151
185
|
}
|
152
186
|
|
1
探偵さんをパワーアップ
test
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
しばらくして探偵から連絡がありました。
|
18
18
|
|
19
|
-
探偵「いやあ、どうやら貴方の配偶者は浮気してたみたいなんで
|
19
|
+
探偵「いやあ、どうやら貴方の配偶者は浮気してたみたいなんで勝手に裁判してきました。これが和解金です。いやあ相場より若干少なかったですね。」
|
20
20
|
|
21
21
|
|
22
22
|
|