求解一道js函数嵌套的题目

有这么一道题目:
    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的对象里的。求分析。


阅读 2k
推荐问题
宣传栏