博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript 闭包的学习
阅读量:4957 次
发布时间:2019-06-12

本文共 1903 字,大约阅读时间需要 6 分钟。

闭包的学习 

1.什么是闭包?

2.闭包有什么好处?应用在那里?

3.闭包需要注意得地方?

这是我学习javascript 闭包的方向:

闭包的定义:函数嵌套函数,内部函数可以引用外部函数的参数和变量,参数和变量不会被垃圾回收机制所收回,什么意思?好抽象哦

function a(){   // 先定义一个函数   var i=1;   function b(){    alert(i);  // 这里弹出的是1;没错就是1,这里正应证了函数嵌套函数,内部函数可以引用外部函数的参数和变量  }   return b(); }a();//执行函数

 

这里我再说一下js垃圾回收机制

function aaa(){    var a = 1;    a++;    alert(a);}aaa(); //这里执行的时候弹出的2;

 

aaa();在执行一次的时候弹出的还是2;  为什么呢,哈哈,这里就涉及js 的垃圾回收机制,var a=1;是局部变量,没有被引用,一旦aaa()执行后会销毁 a变量;在执行时又

重新创建var a=1;所以两次都是弹出的是2;那怎样才不会销毁呢,想一直累加?

var a = 1;//定义一个全局变量function aaa(){      a++;     alert(a);}aaa();  // 弹出是2aaa();//弹出的是3

 

这里的a 没有被销毁,a是一个全局变量,所以一直引用,这就是js的垃圾回收机制,可是我想在内部一直累加行不行呢

可以的。。。。。

 

function a(){   var a=1;   function b(){      a++;      alert(a);  }  return b;}var c=a();c(); //2c(); //3

 

//为什么会是3呢,这里就涉及js的垃圾回收机制

function b(){  a++;  alert(a)}  // 这里的a 一直引用着,并没有销毁a 变量,所以才会累加

好处:

1.希望一个变量长期驻扎在内存当中

2.避免全局变量的污染

3.私有成员的存在

用法:

1.模块化代码

2.在循环中直接找到对应元素的索引

var a = 1;function aaa(){    a++;    alert(a);}aaa(); //2aaa(); //3
function aaa(){    var a = 1;    a++;    alert(a);}aaa(); //2aaa(); //2 alert(a); ===>a is not defined
function aaa(){    var a = 1;    return function(){        a++;        alert(a);    }}var b = aaa();b(); //2b(); //3alert(a); ===>a is not defined
var aaa = (function(){  var a = 1;  return function(){    a++;    alert(a);  }})();aaa(); //2aaa(); //3
 
var aaa = function(){
  var a = 1; function bbb(){
    a++;     alert(a);   }
  function ccc(){    a++;    alert(a);  }  return {    b : bbb,    c : ccc  }}();aaa.b(); //2aaa.c(); //3 alert(a); // 这里访问不到的 ====>a is not definedalert(bbb);// 这里访问不到的 ====>bbb is not definedalert(ccc);//这里是访问不到的 ====>ccc is not defined
function aaa(){  alert(1);}aaa();(function(){  alert(1);})();

 

这里怎样才点击的到li 的下标呢

 
 
 
for(var i=0;i
 
 
      
  • 11111111111
  •   
  • 11111111111
  •   
  • 11111111111

如有错误,请留言

 

转载于:https://www.cnblogs.com/jifengdehao/p/5701962.html

你可能感兴趣的文章
人需要治愈
查看>>
linux中configure文件默认执行结果所在位置
查看>>
Spring MVC例子
查看>>
jmeter 断言
查看>>
玩玩小爬虫——抓取时的几个小细节
查看>>
error C4996: 'fopen'
查看>>
Windows向Linux上传文件夹
查看>>
20180104-高级特性-Slice
查看>>
6个SQL Server 2005性能优化工具介绍
查看>>
nginx启动、关闭命令、重启nginx报错open() "/var/run/nginx/nginx.pid" failed
查看>>
day14 Python 内置函数、匿名函数和递归函数
查看>>
BZOJ 3097 Hash Killer I
查看>>
UINavigationController的视图层理关系
查看>>
html阴影效果怎么做,css 内阴影怎么做
查看>>
宏观经济
查看>>
综合练习:词频统计
查看>>
BZOJ1026: [SCOI2009]windy数
查看>>
样板操作数
查看>>
64位UBUNTU下安装adobe reader后无法启动
查看>>
iTextSharp带中文转换出来的PDF文档显示乱码
查看>>