码迷,mamicode.com
首页 > Web开发 > 详细

js闭包经典试题

时间:2017-10-31 10:56:52      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:内存   func   独立   js闭包   闭包   class   执行   nbsp   输出   

1:以下代码输出的结果是?

function Foo(){
     var i=0;
     return function(){
         document.write(i++);
     }
}
var f1=Foo(),
f2=Foo();
f1();
f1();
f2();

答案:0 1 0

解析: 这是一个闭包,闭包可以用在许多地方。它的最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。 
这里的局部变量i,对f1()来说是全局变量,对f2()来说也是全局变量,但是f1()的i跟f2()的i又是相互独立相互不可见的,f1()每执行一次,f1()的i就加一,f2()每次执行一次,f2()的i就加油,但是相互之间不影响,因此结果是0

js闭包经典试题

标签:内存   func   独立   js闭包   闭包   class   执行   nbsp   输出   

原文地址:http://www.cnblogs.com/momozjm/p/7760102.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!