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

Javascript闭包使用的示例分析

Javascript闭包使用的示例分析
本文分析了Javascript闭包的概念和用法,供大家参考:

说到关闭,每个人都必须早点听说。下面,我有一个简单的了解。

说实话,实际上很少有手动编写闭包的场景,但是在项目中使用的第三方框架和组件或多或少都在闭包中使用。

因此,有必要了解闭包…

一、什么是壁橱

简而言之,它是一个函数,它读取其他函数的内部变量。

由于JS变量范围的特性,内部变量不能被外部访问,外部变量可以在内部找到。

两。使用场景

1。执行私人成员。

2。保护名称空间以避免对全局变量的污染。

三.缓存变量。

首先看一个封装的例子:

复制代码如下:var =函数(){()

作为内部和外部访问功能的变量范围

var;

返回{

getName:函数(){

返回的名称;

},

集名称:功能(新名称){

名称=新名称;

}

}

(});

console.log(人的名字); / /直接访问,结果如下:未定义

Console.log((人。getName)); / /结果:默认

console.log(person.setname(langjt ));

Console.log((人。getName)); / /结果:langjt

然后看看循环中常见的闭包来解决引用外部变量的问题。

复制代码代码如下:var阿里= document.getelementsbytagname(李的);

对于(var i = 0,len = ali.length;我< len;i++){

ALi {我}。onclick =函数(){

警告(i);无论哪个元素都是按鼠标单击的,这里显示的是弹出值,我和之后的打印值是一样的。

};

}

使用闭包后:

复制代码代码如下:var阿里= document.getelementsbytagname(李的);

对于(var i = 0,len = ali.length;我< len;i++){

ALi {我}。onclick =(功能(我){)

返回函数(){

警报(i);单击元素,将弹出相应的元素。

}

})(一);

}

三。注意事项

1。内存泄漏

由于闭包可以使函数中的变量存储在内存中,所以内存消耗很大,所以不能关闭闭包。否则,将导致网页性能问题。

例如:

复制代码代码如下:函数富(){

无功odiv = document.getelementbyid('j_div);

var id = odiv.id;

odiv.onclick =函数(){

/ /警报(odiv。ID);有一个圆形的参考,网页的odiv关闭后仍在记忆IE低版本。所以基本的类型,而不是对象,缓存尽可能多的。

警报(id);

};

odiv = null;

}

2。变量命名

如果内部函数的变量与外部函数的变量名相同,则内部函数不能指向外部函数同名的变量。

例如:

复制代码代码如下:函数富(数字){

返回函数(数字){

console.log(努姆);

}

}

新富(9);

(f);未定义的

事实上,上述用法,专业术语叫腐熟功能(讨好),是将函数接受多个参数接受一个参数(第一个参数的初始功能)功能,并返回剩余的参数和函数返回技术的结果,关闭自然也可以被缓存,如:

复制代码代码如下:var加法器=函数(数字){

返回函数(y){

返回值;

};

};

var =加法器(1);

var =加法器(- 1);

DEC现在是两个新函数,传入参数值(+ -)1

警报(公司(99));100

警报(DEC(101));100

警报(加法器(100)(2));102

警报(加法器(2)(100));102

例如,Ali Yu Bo的seajs源代码:

将代码复制如下:

util-lang.js最小语言增强* -

* /

函数类型(类型){

返回功能(obj){

返回{ }。tostring.call(obj)= {对象+类型+ }

}

}

VAR采用=类型(对象);

VaR isstring =类型(字符串);

希望本文能对大家的javascript程序设计有所帮助。

相关文章

河马刚孵出的鸟巢PS合成图像

河马刚孵出的鸟巢PS合成图像

图像图像,鸟巢,河马,孵出,电脑软件,本教程介绍给我的朋友,用PS创建河马创作另类图片,刚孵化的鸟巢。这个教程的效果非常生动有趣,很现实。课程的难度不是很大,推荐一下,你喜欢学的朋友一起走。 本教程介绍给朋友使用PS合成河马河马斧头孵化孵化…

Javascript判断移动终端接入设备和解析对

Javascript判断移动终端接入设备和解析对

方法,移动终端,接入设备,电脑软件,Javascript,本文给出了判断移动终端接入设备的方法,并用javascript解析相应的CSS,供大家参考,具体分析如下: Javascript决定了不同的Web访问环境,主要用于移动设备,提供相应的分辨率(确定设备代码直接复制腾讯): 将代码复制如…

学习编程语言有什么好选择是PHP、P

学习编程语言有什么好选择是PHP、P

选择,编程语言,学习,有什么,电脑软件,小结: 1。如果你想帮助他尽快找到工作,赚钱,推荐PHP。 2。如果你想让他成为一个有效率的工程师,推荐Python。 三.如果你想让他爱上他的工作,推荐红宝石。 语言的选择: 编程语言是非常重要的,不要以为它们…

JSP中编译指令与操作指令的两点区

JSP中编译指令与操作指令的两点区

操作,编译指令,指令,两点,区别,JSP中编译指令与操作指令的区别 1,编译指令是通知处理消息的servlet引擎,动作指令只是运行时脚本操作。 2。编译指令在编译为servlet时工作,操作指令可以用JSP脚本替换,JSP脚本是标准化的。…

DOM中获取类方法的Javascript实现

DOM中获取类方法的Javascript实现

类方法,电脑软件,DOM,Javascript,本文演示了Javascript实现DOM中类获取的方法,供大家参考,具体实现方法如下: 功能getClass(节点,className){ 如果(节点。getelementsbyclassname){ 返回node.getelementsbyclassname(类名); 如果有标签,则返回该标签。 {人} V…

使用PS图象处理软件生产的精致的小

使用PS图象处理软件生产的精致的小

红色,图象,处理软件,按钮,精致,本教程学习如何用PS图象处理软件制作精致,小,高光按钮。步骤很简单,主要使用自定义形状工具和图层样式。 本教程学习如何打造精致和高光泽的按钮与PS图象处理软件。步骤很简单,主要使用自定义形状工具和图层样式…

冬季户外美的全过程分析

冬季户外美的全过程分析

美的,全过程,冬季,户外,电脑软件,本教程是向您介绍整个户外美容写真摄影在冬季的整个过程。本教程属于ps后期处理教程。非常实用。建议你喜欢你的朋友一起学习。 下面是介绍冬季户外美女写真摄影的全过程分析,推荐给喜欢学习的朋友们! 许多…

对不上传的网站在背景的方法彻底解

对不上传的网站在背景的方法彻底解

上传,网站,方法,解决方法,对不,经过我们的技师检查,发现采用eWebEditor文本编辑器IE8浏览器兼容性造成脚本错误不是网站空间,服务器中毒的问题。现在我们将解决方案发布到你,这样你就可以修改你的网站代码以使在各种浏览器兼容和正常的文本编…

人工智能水滴建模方法与过程介绍

人工智能水滴建模方法与过程介绍

方法,建模,人工智能,水滴,过程,本教程主要是向朋友们介绍制作水滴造型符号的方法和过程。这个教程很实用,效果很好。建议访问你最喜欢的朋友。 我们都知道,标志设计需要的矢量绘图软件绘制,如Illustrator,CorelDraw。Photoshop system sometime…

通过jQueryEasyUIDataGrid实现本地

通过jQueryEasyUIDataGrid实现本地

方法,寻呼,电脑软件,jQueryEasyUIDataGrid,本文阐述了通过jQuery EasyUI datagrid实现本地寻呼的方法。分享给你供你参考。以下是如下: 一般的分页是在后台完成的,前端是不合适的,但有时也有这样的要求。 重点是在分页的监测和JS数组切片的…

PS化妆照片的细腻质感

PS化妆照片的细腻质感

照片,质感,细腻,电脑软件,PS,本教程介绍了一个朋友使用PS创建精致的纹理化妆照片。最后用这道菜装饰的照片真的很漂亮,特别是皮肤的光滑度很好。这个过程的难度不是很大,建议你喜欢的朋友一起学习教程。 本教程教ps图片处理学习方法PS研究人…

HTML5实现的占位符效果示例

HTML5实现的占位符效果示例

占位符,示例,效果,电脑软件,你知道HTML5的新占位符属性吗你不知道什么并不重要,输入框有默认文本,这通常需要这样的效果。单击让默认文本消失,并在丢失焦点后显示默认文本。 今天,分享一段jQuery代码来模拟占位符的效果。 Javascript代码: 复制代码…