碰到一个问题,让 go("l") 输出 "gol", go()("l") 输出 "gool",go()()()()("l") 可以输出 "goooool".
下面是我的解决方法
function go(r) {
let str = 'go';
function a() {
str += 'o';
}
function pro(m) {
if (m) {
console.log(str + 'l');
} else {
a();
return pro;
}
}
if (!r) {
a();
return pro;
} else {
console.log(str + 'l');
}
}
但是我发现最后一个判断干的就是pro的事 ,
function go(r) {
let str = 'go';
function a() {
str += 'o';
}
function pro(m) {
if (m) {
console.log(str + 'l');
} else {
a();
console.log(pro);
return pro;
}
}
pro(r);
}
改成这样就会报错,
console可以得到pro,想知道为什么谢谢
return pro(r);