【JS面试题】闭包:求打印结果1
2024-01-02 14:06:51
题目
function outer() {
var num = 0;
function inner() {
num++;
console.log(num);
}
return inner;
}
var f1 = outer();
f1();
f1();
var f2 = outer();
f2();
f2();
分析
闭包变量为num,内部函数inner可以访问到外部函数outer的num变量,这相当于授权该变量可以被延迟使用,每次调用外部函数时,都会开辟相应的内存空间,闭包变量num会保存在该内存空间中,直到该外部函数的内存空间被销毁。
在本题中,调用外部函数outer时开辟一个内存空间,变量num保存在该内存空间中,因此两次调用f1的输出结果为1 2;当再次调用外部函数outer时,又重新创建一个内存空间
,因此两次调用f2的输出结果同样为1 2。
结果
1 2 1 2
文章来源:https://blog.csdn.net/owo_ovo/article/details/135338266
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!