function foo(a,b){
console.log(b);
return{
foo:function(c){
return foo(c,a);
}
}
}
var func1=foo(0);
// a=0,但因为b没有被赋值,所以undefined
func1.foo(1);
// foo(a,b).foo
// => function(c)
// => return foo(c,a)
// => foo(a,b)
// => 因为a是0,所以现在b是0
func1.foo(2); // 同上(张飞说:哥哥说的对)
func1.foo(3); // 同上(张飞说:哥哥说的对)
var func2=foo(0).foo(1).foo(2).foo(3);
// foo(0) 【a=0,b未定义,undefined】
// =》foo(0).foo(1)【c=1,a=0(a=1,b=0)=>0】
// =》foo(0).foo(1).foo(2)【c=2,a=1(a=2,b=1)=>1】
// =》foo(0).foo(1).foo(2).foo(3)【c=3,a=2(a=3,b=2)=>2】
var func3=foo(0).foo(1);
// foo(0) 【a=0,b未定义,undefined】
// =》foo(0).foo(1)【c=1,a=0(a=1,b=0)=>0】
func3.foo(2);
// =》foo(0).foo(1).foo(2)【c=2,a=1(a=2,b=1)=>1】
func3.foo(3);
// =》foo(0).foo(1).foo(3)【c=3,a=1(a=3,b=1)=>1】
运行结果