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

Javascript中作用域和闭包的讨论

Javascript中作用域和闭包的讨论
Javascript函数的范围是由函数限定的,不同的函数有一个相对独立的范围,在内部,函数可以声明和访问全局变量,或者声明局部变量(使用var键,函数参数是局部变量),但不能在函数外部访问外部变量。

函数测试(){
var = 0; /本地变量
b = 1;全局变量
}
a = b =未定义的,B 1
同一名称的局部变量覆盖全局变量,但它们本质上是两个独立变量,一个变量的变化不影响另一个变量:

a = 5;函数a=5
函数测试(){
var a = 4;函数在值为4的范围内。
(});
a =函数值为5,影响函数
一般来说,函数完成后,函数的内部变量的引用都完成了。函数中的局部变量将被恢复,函数的执行环境将被清空。但是,如果内部函数作为函数返回,情况将发生变化。

函数测试(i){
var;
返回函数(){
返回B;
};
}
var =测试(8);
(a);返回值是64,内部变量B是63。
(a);返回值是63,内部变量B是62。
当内部函数作为返回值时,由于参考函数在内部变量未结束后,使得局部变量的函数不能被恢复,执行环境的功能得到保留,从而形成闭合效应,通过参考访问内部变量,应予以恢复。

闭包还使函数私有变量的局部变量只能通过返回的内部函数访问,并且不能以任何其他方式改变。

因此,闭包可以用来维护本地变量和保护变量。

不使用闭包:

如果a包含5个元素
对于(var i = 0,M = a.length;我<米;i++){
一个{我}。onclick=功能(e){
return'no. +我;
};
}
单击任意一个元素,返回值为5,因为i最终值为5。
使用闭包的情况:
函数测试(i){
返回函数(e){
return'no. +我;
};
}
如果a包含5个元素
对于(var i = 0,M = a.length;我<米;i++){
一个{我} onclick=测试(我);
}
使用闭包来维护本地变量,单击元素返回号0~4号。
虽然关闭带来方便,但也带来了一些缺点。

1。程序的复杂性增加,理解难度更大。

2。干扰正常的垃圾收集,复杂的闭包也可能导致内存崩溃。

三.大型闭包常常伴随性能问题。

因此,封袋应简单、紧凑,但不可大而复杂,同时应避免大规模使用封闭,封闭的外观本身就是语言的缺陷,但由于其独特的功能而保留下来,是一种辅助手段,而不是主要功能。

相关文章

如何用PowerPoint制作电子相册PPT

如何用PowerPoint制作电子相册PPT

电子相册,如何用,课程,电脑软件,PowerPoint,现在是科技时代,数码产品的不断升级,不断普及,现在连普通的手机可以用来拍照,但照片效果不大,只能说自我和生活,洗也洗不到什么是必要的图片,所以现在我们需要一个电子相册,相册中的生活照,直到我们可以欣…

ps快捷键百科全书PS实用技巧

ps快捷键百科全书PS实用技巧

快捷键,百科全书,实用技巧,电脑软件,ps,PS快捷键 ps快捷Daquan:分享50个非常实用的操作捷径,提高工作效率,大个子都是设计师,越快越好软件的使用。 一、常用热键组合 1层模式快捷方式:正常(移位+选项+ N),乘(移位+选项+ M),过滤器(移位+选项),叠加(移位+选…

QQ空间生活感受QQ空间谈

QQ空间生活感受QQ空间谈

空间,电脑软件,QQ,1,按钮的第一个按钮被错误地扣除,但你可以找到最后一个。有些东西在一开始是错误的,但只有在最后必须承认。 2、忙碌中休闲的天性;逃避更多的机会,逆多的必然;平静,失落;抱着冷漠,冷静下来。理解八这个生活是悠闲的。 三.世界上没…

七2015网站未来的设计趋势

七2015网站未来的设计趋势

趋势,网站,未来,电脑软件,在2014的网页设计趋势出现的一些令人印象深刻,越来越多的鬼按钮,视差滚动是成熟的,单页设计也成为许多设计技术的重要载体,编码网页设计平台免费,并逐步开始造福设计师!小如我们盘点未来的设计趋势,在2015个七个站点中,去…

在Javascript编程中使用承诺

在Javascript编程中使用承诺

承诺,编程,电脑软件,Javascript,虽然承诺有自己的规格,目前保证图书馆是承诺的实现细节的不同,和一些API在意义甚至不同。但承诺的核心是相通的,它是当时的方法。在相关条款,承诺是指一个对象或函数,有一个方法可以触发具体的行为。 承诺可以有…

颜色、类型和空间如何影响情感的详

颜色、类型和空间如何影响情感的详

类型,空间,颜色,情感,详细,下面的教程详细分析了颜色、类型和空间是如何影响情绪的。这个教程很好。值得学习。建议像你这样的朋友和教程一起学习。 你有没有考虑过设计在设计时对情绪的影响情绪的影响可以分为两个方面:mdash;mdash;和用户的…

ps模仿邮票工具来删除不需要的图像

ps模仿邮票工具来删除不需要的图像

工具,图像,删除,不需要,邮票,本教程介绍了一个朋友,PS复制邮票工具,以消除不必要的图像方法。本教程是比较基础的,非常适合初学者学习。希望你能喜欢。 当我们需要的图片中有不必要的图像时,用ps软件去除不必要的图像的方法有很多种。这次我们…

ps回到20年前的入门教程

ps回到20年前的入门教程

入门教程,年前,电脑软件,ps,本教程是向朋友介绍PS回到20岁的方法。本教程的入门非常适合初学者学习。建议像你这样的朋友一起学习这个教程。希望你能喜欢。 PS教程回归到20岁 课程 方法/步骤 1,打开一个可以在软件中制作的图片。图片必须…

滑稽可笑的个性签名和个性签名

滑稽可笑的个性签名和个性签名

个性签名,滑稽,可笑,电脑软件,我买了一部新手机,开了一个飞行模式,把它扔到了7层,然后把它弄坏了! 经过17年的生活,我终于知道了我和超人之间的唯一区别。我真的把内衣放进去了。 我想给生命一个吻,但现实却给了我两个吻。作为奖励,我不能踢他吗 …

PS图象处理软件设计美丽的彩色玻璃

PS图象处理软件设计美丽的彩色玻璃

图象处理,软件设计,贴纸,效果,美丽,本教程是PS图象处理软件玻璃贴纸效果的设计方法引入到美丽多彩的朋友,的效果的教程很漂亮,但难度不难,很适合初学者学习,推荐,喜欢的朋友可以跟着教程学习。 本教程介绍朋友玻璃贴纸PS图象处理软件设计美丽多…

如何设置ps笔刷光标窗体

如何设置ps笔刷光标窗体

窗体,光标,如何设置,笔刷,电脑软件,如何设置ps笔刷光标窗体在使用ps的过程中,我们经常使用画笔工具。有时,我们的操作不当会导致光标形式发生变化,操作起来也不容易。接下来,我们需要共享设置方法。 在PS的使用中,我们经常使用画笔工具,有时我们…

PS图象处理软件梦幻中草药化妆品海

PS图象处理软件梦幻中草药化妆品海

中草药,图象,处理软件,海报,梦幻,这次我们做了一个有点梦幻感的化妆品海报,产品是水做的,原料是草药,让我们围绕这些要点进行头脑风暴,提炼出关键的材料和参考。 这次我们做了一个有点梦幻感的化妆品海报,产品是水做的,原料是草药,让我们围绕这些…