JavaScript创建闭包的两种方式的优劣与区别分析
作者:bea
通常JavaScript创建闭包比较常用的有两种方式。 构造函数方式: new function() { var 变量... } 内联执行方式: (function() { var 变量... })(); 在JavaScript内部运行机制下他们有什么区别?用哪种方式创建比较好?它与其它方式创建的闭包相比有什么优势? 我是这样理解的: 区别: 第一个:子方法可以共享变量 第二个:内部子方法共享变量 比较: 我认为内联的比较好; 优势: 一般内联的创建
通常JavaScript创建闭包比较常用的有两种方式。
构造函数方式:
new function() {
var 变量...
}
内联执行方式:
(function() {
var 变量...
})();
在JavaScript内部运行机制下他们有什么区别?用哪种方式创建比较好?它与其它方式创建的闭包相比有什么优势?
我是这样理解的:
区别:
第一个:子方法可以共享变量
第二个:内部子方法共享变量
比较:
我认为内联的比较好;
优势:
一般内联的创建是按需索要内存,因为只是局部执行的变量在内存里,可以将相关的和具有依赖性的代码组织起来,以便将意外交互的风险降到最低,构造那个所有的方法执行变量都要保存在内存里,这样会影响网页的性能,建议退出前删除变量
当然这只是我的个人理解,其实一般都用闭包需要特别主要在IE内核浏览器下产生内存泄漏,最好是变量使用完就干掉。
以上所述就是本文的全部内容了,希望大家能够喜欢
猜你喜欢
您可能感兴趣的文章:
- javascript框架设计之类工厂
- jQuery判断多个input file 都不能为空的例子
- javascript框架设计之浏览器的嗅探和特征侦测
- 简述AngularJS相关的一些编程思想
- javascript框架设计之种子模块
- 在JavaScript的AngularJS库中进行单元测试的方法
- javascript框架设计之框架分类及主要功能
- js的flv视频播放器插件使用方法
- 使用Raygun来自动追踪AngularJS中的异常
- 使用JavaScript的AngularJS库编写hello world的方法
- 浅谈setTimeout 与 setInterval
- 简介可以自动完成UI的AngularJS工具angular-smarty
- javascript中传统事件与现代事件
- 浅谈jquery中delegate()与live()
- jquery 中ajax执行的优先级
- jquery中ready()函数执行的时机和window的load事件比较
- jquery中toggle函数交替使用问题
- 浅谈js 闭包引起的内存泄露问题
- js闭包所用的场合以及优缺点分析