当前位置:首页 > 日记 > 正文

浅谈Javascript中的闭包

浅谈Javascript中的闭包
很长一段时间,人们不了解封锁,然后了解行动的范围,以及有关的问题。

闭包,也是一个常规的面试问题,简单点是函数嵌套函数。

函数作为返回值:

函数(){
var a=1;
返回函数(){
++;
console.log(一);
}
}
var =美孚();
AAA();2
AAA();3
实际上,这段代码并不难理解。AAA是指向富()的一个新函数,但在这个函数中,引用一个变量。因此,当函数执行时,变量A仍然存在于内存中,即a分别为2和3。

函数作为参数:

var a=10;
函数(){
console.log(一);
}
函数AAA(FN){
var a=100;
(FN);
}
AAA(富);
根据我以前的理解,在执行AAA函数中的FN函数时,如果没有变量,则转到父范围以找到变量。这里是100。结果是100吗

不幸的是,答案是否定的。结果是10。王付鹏的博客是很好的。他说他想创建函数的作用域而不是父作用域。

闭包的使用场景
因为我也比较新手,这里是一个简单的例子。当李被点击时,李在UL中的位置是索引值。

HTML代码:
001
002
003

JS代码:

例1:

请看下面的代码,在运行之后,不管你点击了多少李,你会发现结果是3。
VaR阿里= document.getelementsbytagname(李的);
对于(var i = 0;i < ali.length;i++){
ALi {我}。onclick =函数(){
警报(一);
}
}
由于匿名函数中没有i变量,所以在结束时,我们单击页面上的LI标记,而我早在3。

例2:

ALi {我}。onclick =(功能(我){)
返回函数(){
警报(一);
}
})(一);
这一次我们使用函数作为返回值,并通过自执行函数的参数传递变量i。然后,因为返回函数必须引用i变量,当for循环结束时,它不会释放i变量,也就是说,i变量的值保存在内存中。基于这个原则,很容易导致IE的低版本内存泄漏。

例3:

对于(var i = 0;i < ali.length;i++){
(函数(i){)
ALi {我}。onclick =函数(){
警报(一);
}
})(一);
}
这个原则和上面的差不多。

小米前端关闭采访问题:
函数重复(函数,时间,等待){
此函数返回一个新函数,如使用

无功repeatedfun =重复(报警,10, 5000)
/ /电话repeatedfun(hellworld )

提醒/ HelloWorld十次,每次间隔5秒

我的回答:
函数重复(函数,时间,等待){
返回函数(STR){
当(时间> 0){
setTimeout(){()函数(
Func(STR);
},等待);
倍;
}
}
}

无功repeatedfun =重复(报警,10, 100);
repeatedfun(hellworld );
以上是本文的全部内容,我希望它能帮助您学习Javascript闭包。

相关文章

CorelDRAW印前排版的技巧和注意事

CorelDRAW印前排版的技巧和注意事

注意事项,印前,技巧,电脑软件,CorelDRAW,本教程介绍朋友到CorelDRAW印前排版技巧及注意事项。这个教程很实用。建议喜欢的朋友一起学习,希望能对你有所帮助。 CorelDRAW是一个功能强大的综合性软件包,具有许多功能,如图形绘制、图像处理、网页…

如何进入每周Word2010教程Word2010

如何进入每周Word2010教程Word2010

教程,电脑软件,有时你需要在Word2010安排旅行一周。你不需要在任何时候每周输入小时。您只需要一个安装程序,然后返回到完成。它简单快捷。这里有一个看看。 1、word文档、桌面空白的单机鼠标右键、word文档。 2、双击打开,在空白处点击鼠标…

经典经典签名

经典经典签名

经典,电脑软件,以下是分手伤心经典人格签名的全部内容 爱不是一个生气的人会说再见啊。 分手吧,我会更快乐更幸福。 两个人分手,一个是假装幸福,一个是真的难过。 你只是在我生气的时候选择离开。 分手了,每个陌生人在QQ上跟我说话,我以为是你。…

在帝国CMS留言板回复后发送电子邮

在帝国CMS留言板回复后发送电子邮

留言板,帝国,给客户,发送电子邮件,电脑软件,描述:修改1:E /行政/工具/ reok.php / * * /回条 在43行添加代码 ----------------------------------------------------------------------------------------------- 复制代码代码如下所示: …

一种通过滤波快速实现梦想的立体球

一种通过滤波快速实现梦想的立体球

滤波器,球形,快速,梦想,电脑软件,本教程介绍一种制作立体球的简单方法。一般过程:先选择背景图像,然后用椭圆选框工具拉出右圆选区,使球体具有球形畸变和旋转失真滤波立体感。 最终效果 1。打开星光背景材料,如下图所示(你可以选择你喜欢的背…

腾讯手机管理器(V3)软件管理的内容是

腾讯手机管理器(V3)软件管理的内容是

常见问题,软件管理,腾讯,管理器,内容,腾讯手机管理器(V3)软件管理的内容是什么 软件管理包括以下几个方面: 1、安装软件:查看并管理已安装的软件,您可以看到已安装软件的分数和详细信息,并对软件进行评分,并报告流氓软件。您还可以更新和卸载软…

最新激励人的个性签名经典签名

最新激励人的个性签名经典签名

个性签名,经典,最新,电脑软件,你对未来充满希望吗 1、一天要做三件事,先要笑,第二要笑,第三要笑。 2、人生不相信眼泪,眼泪不代表软弱。 3、没有音乐,生活是一种遗憾,没有爱,生活是一种浪费。 4,脆弱的人,只懂得同情自己,不知道反省自己。 5。当你觉…

PS图象处理软件生产的一种蓝色按钮

PS图象处理软件生产的一种蓝色按钮

图象,质感,处理软件,按钮,蓝色,本教程学习如何在PS图象处理软件做金属质感的按钮,主要通过PS图象处理软件的图层样式。 本教程学习如何使用PS图象处理软件制造的金属质感的按钮,主要通过PS图象处理软件的图层样式,并看看效果第一。 新的文件…

办公室装修材料选择指南

办公室装修材料选择指南

选择,装修材料,办公室,指南,电脑软件,办公室装修应注意什么,尤其是在材料采购方面。 办公装修材料决定了办公室装修的质量,对公司的经营有着重要的影响,但装修材料的选择往往令人头疼,如何节省我们的精力和精力来做装修材料的工作呢今天,贴心的…

技能词使用技术删除现有Word文档页

技能词使用技术删除现有Word文档页

文档,删除,技能,页面,技术,我们都知道,目前的微软Word办公软件已成为我们工作和生活中必不可少的工具软件,无论是文件处理和文字排版,我们会选择使用这个软件。然而,有时候,当我们需要整理的word文档,我们可能需要删除现有的Word页面设置所以,我们…

ps对水印过程的文本效果

ps对水印过程的文本效果

文本,水印,过程,效果,电脑软件,ps的水印教程:简单的两个步骤,可以轻松地删除水印的照片-不需要的内容 PS水印教程:简单的两步教你轻松去除照片中多余的内容——水印,PS处理水印实例教程:PS图象处理软件轻松去除图片上的水印教程,具体地说两种方式…

PS图象处理软件在设置字体的字体添

PS图象处理软件在设置字体的字体添

字体,设置,方法,图象,处理软件,PS图象处理软件在设置字体越粗,很多朋友都不是很清楚,其实方法很简单。这里是萧边介绍PS图象处理软件的字体浓缩法。希望能对你有所帮助。 在使用PS图象处理软件的过程中,很多时候我们会用加粗字体,但是很多初学…