function fun(n,o){ console.log(o); return { fun: function(m){ return fun(m,n); } }; }
var a = fun(0); // undefined , 这个我理解 a.fun(1); // 0, 这是为什么啊
为什么 a.fun(1)是 0 啊
function fun(n,o){ console.log(o); return { fun: function(m){ return fun(m,n); } }; }
var a = fun(0); // undefined , 这个我理解 a.fun(1); // 0, 这是为什么啊
为什么 a.fun(1)是 0 啊
|
yesterdaysunMay 7, 2020
1
因为最开始穿进去的 0, 作为 n, 在 a.fun 的调用中, 又被传到外面的 fun 作为 o 了
|
|
shintendoMay 7, 2020
2
a = fun(0) // a == {fun: function(m) {return fun(m,0)}}
这样看能理解吗? |
|
3
@yesterdaysun 听不懂
|
|
rmingMay 7, 2020
5
|
|
6
@lukeshawn ??不理解在哪里
1. fun(n)的返回值是{ fun: function(m){ return fun(m,n); } } 2. 所以 fun(10086)的返回值是{ fun: function(m){ return fun(m,10086); } } 3. 同理 fun(0)的返回值是{ fun: function(m){ return fun(m,0); } } 4. a = fun(0),所以 a = { fun: function(m){ return fun(m,0); } } 哪步不理解?? |
|
MisakaTangMay 7, 2020
7
|