function fun(a, b) { console.log(b); return { fun: function (c) { return fun(c, a); } }; } var d = fun(0); d.fun(1); d.fun(2); d.fun(3); var d1 = fun(0).fun(1).fun(2).fun(3); var d2 = fun(0).fun(1); d2.fun(2); d2.fun(3);