JS闭包小用

怎么实现go('l') --> 'gl'
		go()('l') --> 'gol'
		go()()('l') --> 'gool'
		go()()()('l') --> 'goool'
		............
意思应该很清楚了吧,函数没传参数,几次没传参,就会多几个o 在后面,返回的是函数,传参数,返回的是字符串
说实话,我刚刚看到这个的时候想了半天没想出来(请原谅我的水平差劲)
我后续琢磨了下面的这个方法,解决了这个问题,可能还有别的方式,但是我暂且想到了这个

下面是代码
function go(a){
	var str = 'g';
	var addO = function(a){
		str+='o';
		return a ? str += a : addO;
	}
	return a ? str += a : addO;
}

你可能感兴趣的:(小知识)