【不知道对不对】js函数 调来调去

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】

运行结果

猜你喜欢

转载自blog.csdn.net/MENGCHIXIANZI/article/details/106009140
今日推荐