JavaScript 闭包
来源:互联网 发布:推荐算法 pdf 编辑:程序博客网 时间:2024/05/18 01:20
一、闭包
1. 如何从外部读取局部变量(闭包):
在一个函数内部,再定义一个函数:
第一步:定义一个普通函数f1();
第二步:在f1中定义一个普通函数f2();
第三步:在f1中返回f2(在f1中返回f2的引用)
第四步:执行f1,把f1的返回结果复制给变量c;
第五步:执行c();
函数A的内部函数B被函数A以外的一个变量C引用
Function f1(){
Var n=99;
Function f2(){
Alert(n);
}
Return f2;
}
Var result =f1();
Result();//99外部可以访问局部变量
2. 闭包:当一个内部函数被其他函数之外的变量引用的时候,就形成了闭包。
3. 闭包的特性:
1) 函数嵌套函数
2) 函数内部可以引用外部的参数和变量
3) 参数和变量不会被垃圾回收机制回收
4. 闭包的用途:
1) 可以直接读取函数内部定义的变量
2) 让这些变量的值始终存在内存中
5. 注意:
1) 问题1:闭包会使函数中的变量都被保存在内存中,内存消耗大,所以不能滥用,否则会导致网页的性能问题,内存泄漏
解决方案:在退出函数的时候,将不使用的局部变量全部删除
2) 问题2:闭包会在复函数外部,改变复函数内部的变量值,如果把复函数当做对象使用,把闭包当做公用方法(public),内部变量相当于私有属性(privatevalue)
---------不能随便改变复函数内部变量的值。
- 【JavaScript】Javascript闭包
- javascript的闭包javascript
- Javascript闭包演示javascript
- [ javascript ] javascript闭包测试!
- 【javascript】javascript中的闭包
- 【javascript】学习Javascript闭包
- 理解 JavaScript 闭包
- javascript 闭包
- javascript闭包
- Javascript闭包
- JavaScript中的"闭包"
- JavaScript 闭包
- javascript中的闭包
- 理解 JavaScript 闭包
- Javascript Closures[闭包]
- javascript闭包
- Javascript 闭包详解
- Javascript闭包技术
- windows xampp localhost can visit ip also ,but vhost can't
- Libcoap安装和使用
- 云星数据---Scala实战系列(精品版)】:Scala入门教程044-Scala实战源码-Scala 元组Tuple操作
- JSP页面中<%!%>与<%%>与<%=%>
- MPU6050开发 -- 数据分析
- JavaScript 闭包
- Linux root初始密码设置
- yii2中使用jquery作全选,反选,批删(练习)
- 构建机房运维基础架构系列教程
- cuda对接cudnn出现问题
- 如何修改tomcat默认的8080端口号
- AIX下创建ASM磁盘组
- Intellij IDEA打包文件manifest文件信息有误
- JavaScript--全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)