闭包

原创 2016年10月23日 09:34:12
<!DOCTYPE html>
<html>
<head>
	<title>闭包2</title>
	<meta charset="utf-8">
</head>
<body>
	<script type="text/javascript">
		//闭包最大用处有两个,一个是前面提到的可以读取函数内部的变量。但是使用的时候不可以直接写出来,只能迂回获取
		//另一个就是让这些变量的值始终保持在内存中。
		//result实际上就是闭包f3函数。它一共运行了两次,第一次的值是999,第二次的值是1000。这证明了,函数f2中的局部变量n一直保存在内存中,并没有在f2调用后被自动清除。
		function f2(){
	      var n=999;
	      nAdd=function(){n+=1}
	      function f3(){
	        alert(n);
	        }
	        return f3;
	      }
			  var result=f2();
			  result(); // 999
			  nAdd();//因为上面定义的时候其实全局变量,所以此时不会报错。
			  result(); // 1000


		 function f1(){
      var n=999;
      var nAdd=function(){ alert(n+=1);}
      function f2(){
        nAdd();
        }
        return f2;
      }
		  var result=f1();
		  result(); // 1000
		  result();//1001

//1)由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。
			
	</script>
</body>
</html>

理解JavaScript中的闭包

-
  • 1970年01月01日 08:00

php 连接库闭包 php 连接库闭包

  • 2011年08月11日 16:19
  • 1003B
  • 下载

尚硅谷——JavaScript闭包

  • 2018年01月31日 10:56
  • 423KB
  • 下载

关系运算有关的程序

  • 2015年11月29日 16:08
  • 2KB
  • 下载

闭包(Java中的闭包)

闭包Java中的闭包 What 简单理解 WHY HOW Java中的闭包 内部类 局部内部类 匿名内部类 闭包(Java中的闭包):What 闭包是指可以包含自由(未绑定到特定对象)变量的代码块;这...
  • yztbydh
  • yztbydh
  • 2017-07-28 17:20:47
  • 2285

什么是闭包,闭包的作用与好处是什么,何时使用闭包,对闭包的改进

闭包:外部函数定义的内部函数就是闭包。 闭包的作用及好处:闭包给访问外部函数定义的内部变量创造了条件。也将关于函数的一切封闭到了函数内部,减少了全局变量,这也是闭包的真实含义。 与普通函数...
  • wzw_mzm
  • wzw_mzm
  • 2017-02-24 14:11:23
  • 2903

JavaScript闭包的原理与缺陷

闭包的原理闭包是指有权访问另一个函数作用域中的变量的函数。根据下面的代码示例来理解什么是闭包,在add函数内部的匿名函数中,访问到外部函数的变量outerArg,在执行add(10)之后外部函数返回了...
  • hongchh
  • hongchh
  • 2016-08-16 16:37:51
  • 1593

闭包的常见应用

事实上,通过使用闭包,我们可以做很多事情。比如模拟面向对象的代码风格;更优雅,更简洁的表达出代码;在某些方面提升代码的执行效率。 1、匿名自执行函数 我们知道所有的变量,如果不加上var关键字,则...
  • qq_34986769
  • qq_34986769
  • 2016-08-10 14:26:19
  • 1222

golang闭包里的坑

介绍 go的闭包是一个很有用的东西。但是如果你不了解闭包是如何工作的,那么他也会给你带来一堆的bug。这里我会拿出Go In Action这本书的一部分代码,来说一说在使用闭包的时候可能遇到的坑。全部...
  • future_challenger
  • future_challenger
  • 2015-08-30 16:56:06
  • 1690

闭包经典面试题

闭包应该是前段面试中经常碰到的面试题,很多人都会在这个问题上被问住。如果想要弄清楚就要掌握闭包的概念; 首先看面试题: for (var i = 1; i   setTimeout...
  • donggx
  • donggx
  • 2017-04-14 14:13:28
  • 8599
收藏助手
不良信息举报
您举报文章:闭包
举报原因:
原因补充:

(最多只允许输入30个字)