回答編集履歴

2

最後の部分を調整

2018/02/28 11:07

投稿

miyabi-sun
miyabi-sun

スコア21158

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
- // cb()書けば実行でるが、今回は実行しないサンプルなのでコメントアウト
177
+ // 条件を満たしたときのみコールバック関数を実行
178
+
179
+ if (true) {
180
+
181
+ cb();
182
+
183
+ }
150
184
 
151
185
  }
152
186
 

1

探偵さんをパワーアップ

2018/02/28 11:07

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  しばらくして探偵から連絡がありました。
18
18
 
19
- 探偵「いやあ、どうやら貴方の配偶者は浮気してたみたいなんで裁判してきましたこれが金です。」
19
+ 探偵「いやあ、どうやら貴方の配偶者は浮気してたみたいなんで勝手に裁判してきましたこれが和解金です。いやあ相場より若干少なかったですね。
20
20
 
21
21
 
22
22