回答編集履歴
2
コードのconst/let付け忘れ
answer
CHANGED
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
const func_name = f.prototype.constructor.name
|
|
15
15
|
return [
|
|
16
16
|
function () {
|
|
17
|
-
args = [...arguments].join(", ")
|
|
17
|
+
const args = [...arguments].join(", ")
|
|
18
18
|
log(`${nest}invoking ${func_name}(${args})`)
|
|
19
19
|
nest += ' '
|
|
20
|
-
result = f.apply(this, arguments)
|
|
20
|
+
let result = f.apply(this, arguments)
|
|
21
21
|
nest = nest.slice(1)
|
|
22
22
|
log(`${nest}result is ${result}`)
|
|
23
23
|
return result
|
1
実行結果を追記
answer
CHANGED
|
@@ -46,7 +46,23 @@
|
|
|
46
46
|
fact = original_fact
|
|
47
47
|
log("fact(3) = " + fact(3))
|
|
48
48
|
```
|
|
49
|
-
|
|
49
|
+
結果:
|
|
50
|
+
```
|
|
51
|
+
--- original function ---
|
|
52
|
+
fact(3) = 6
|
|
53
|
+
--- trace function ---
|
|
54
|
+
invoking fact(3)
|
|
55
|
+
invoking fact(2)
|
|
56
|
+
invoking fact(1)
|
|
57
|
+
invoking fact(0)
|
|
58
|
+
result is 1
|
|
59
|
+
result is 1
|
|
60
|
+
result is 2
|
|
61
|
+
result is 6
|
|
62
|
+
fact(3) = 6
|
|
63
|
+
--- untrace function ---
|
|
64
|
+
fact(3) = 6
|
|
65
|
+
```
|
|
50
66
|
少し本質的でないところに手を入れてしまってます。分かりづらかったらスミマセン。
|
|
51
67
|
|
|
52
68
|
ES5で書かないといけないというわけでもないと思ったのでES2015で書いているつもりですが「どの言語仕様に準拠しているか」あまり意識出来てません。おかしなところがあったらご指摘いただければ嬉しいです。
|