JS函数return结果undefined

var k = (function fun(x) { 
if(x>0) {
    x--;
    console.log(x);
} else{
    console.log("lala");
   return "lala";
}
    fun(x);  
})(3)

console.trace(k);

打印的结果是

2
1
0
lala
undefined
(anonymous) @ test.html:47

为什么是undefined呢!???

阅读 8.8k
3 个回答

k就是你的fun(3), fun(3) 按照你代码,没有显式给出返回值,默认就是返回的 undefined

如果你要做递归的话,应该 给 里面的 fun(x) 加上 return 变成 return fun(x); 如此就能让k为 lala了。

里面的 fun(x) 加上 return

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题