有这么一道题目:
function fun(n,o) {
console.log(o);
return {
fun:function(m){
return fun(m,n);
}
}
}
在控制台执行的结果:
fun(0) //undefined obj{fun:function(m)}
fun(0).fun(1) //undefined 0 obj{fun:function(m)}
fun(0).fun(1).fun(2) //undefined 0 1 obj{fun:function(m)}
fun(0).fun(1).fun(3) //undefined 0 1 obj{fun:function(m)}
fun(0).fun(1).fun(2).fun(3) //undefined 0 1 2 obj{fun:function(m)}
fun(0)的执行结果好理解,但是后面几个就不太理解了,为什么输出这样,返回的obj{fun:function(m)}这个fun又是指哪个fun,最外层的,还是return的对象里的。求分析。
https://segmentfault.com/a/11... , 看这篇文章