f = foo(1) 可以看成 f = function(n){ let sum = 1 if(n>0){ sum+=n } console.log(sum) } 所以f(2) = 3 foo(0)(2)的意思是sum = 0 回调函数中的n为2 所以foo(0)(2) = 2 f.call(obj, 2)因为闭包的原理,之前f(2)调用了一次内部函数,所以使用之前留下的sum = 3,带入函数中sum = 3,n=2,返回5。 如有错误,可指出。
点赞 评论

相关推荐

2025-12-30 16:42
同济大学 C++
仁狂躁使者:哎呀,不用担心,我当时配环境配了两天,项目捋不清就问问导师能不能用ai,慢慢就清了,会好起来的
点赞 评论 收藏
分享
2025-12-23 18:51
中南大学 Java
唉又萌混过关:是不是那种收钱盖实习章的机构?
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务