JavaScript中闭包的简单应用
来源:互联网 发布:python inceptor 编辑:程序博客网 时间:2024/05/17 18:12
原文地址:JavaScript: Private variables
有一个简单的例子,根据索引选择数组中相应的值。
var names = ['Kenneth', 'John', 'Marc', 'Robert'];var lookup = function (index) { return names[index];};alert(lookup(0));
当前的数组存在于全局作用域中,会污染全局变量,也可能会被其他代码修改。所以简单的做法是把它作为函数的局部变量。
var lookup = function (index) { var names = ['Kenneth', 'John', 'Marc', 'Robert']; return names[index];};alert(lookup(0));
这样也是可以的,但是每次执行方法的时候都会初始化数组,可以用闭包来避免这种情况。
var lookup = (function () { var names = ['Kenneth', 'John', 'Marc', 'Robert']; return function (index) { return names[index]; };})();alert(lookup(0));
方法是程序执行的主体,其中的局部变量在执行时分配于方法栈中,在方法执行完退出后回收。但是闭包可以延长方法中局部变量的生命周期,当外层函数返回的也是函数且引用一直被持有时,如果外层函数的局部变量也被返回函数所捕获,此变量的生命周期就会和返回函数一样。
.NET中也有闭包的概念,当某方法返回的是委托时,情况和js中是一样的,被捕获的局部变量的生命周期也会延长因而不会被回收。
0 0
- JavaScript中闭包的简单应用
- 简单的javascript的应用
- JavaScript的几个简单应用
- javascript 面向对象的简单应用
- javascript随机数的简单应用[代码]
- JavaScript常用的事件及简单应用
- javascript实现堆栈和简单的应用
- javascript中Ajax的简单应用
- HTML/CSS/JAVASCRIPT的简单应用
- JavaScript中闭包的应用
- javascript的应用,简单设计切换网页主题的应用
- javascript 简单缓存应用
- JavaScript 简单应用
- Javascript 最简单检测网速的方法和应用
- Javascript 最简单检测网速的方法和应用
- Javascript 最简单检测网速的方法和应用
- 40-JavaScript-折叠与显示-复选框的简单应用
- JavaScript 时间间隔和暂停及scrollleft的简单应用
- Linux(Ubuntu)入门
- java的回收机制----根搜索算法
- SqlServer表死锁的解决方法
- Myeclipse中快速定位到指定行
- 深度优先遍历与广度优先遍历
- JavaScript中闭包的简单应用
- View事件
- Python学习-机器学习实战-ch02KNN_part1
- 二维数组和指向指针的指针 ,指针做形参做局部变量以及内存分配
- Bitmap中的config
- 回调函数的声明及使用(序)
- IOS面试技巧
- Jquery MiNi UI V3.0 在线示例
- RabbitMQ监控(1)——RabbitMQ简介