javascript闭包
2016-03-10 19:20
288 查看
今天看了一篇博客,对闭包有了一定的理解。首先,为什么需要闭包。因为js中的变量分为全局变量和局部变量,js可以在函数中直接读取全局变量,但函数外部不能读取函数内部的局部变量。为了解决这个问题以及其他各种各样的问题,闭包就产生了。
function f1(){ var m=10; function f2(){ alert(m); } } f1(); 在这里,f2可以读取f1的m值,因为f2是f1内部函数,f1对f2来说是开发的。但是,f2对f1是隐秘的。既然f2可以读取f1内部变量,那么同样有办法可以在函数外部读取f1的内部变量:
function f1(){ var m=10; return function f2(){ alert(m); } } var result=f1(); result(); 闭包虽然有利于我们在函数外部访问函数内的数值,但是f1的值m会一直存在在内存中,这样的话会浪费内存,因此尽量不要使用太多的闭包函数。
相关文章推荐
- wdatepicker.js
- 【BZOJ 1012】 [JSOI2008]最大数maxnumber
- JavaScriptCore.framework可能
- JavaScript创建对象的三种方法
- js限制文本框只能输入数字方法小结
- ExtJs控件属性配置详细
- JS中对象和类的初步学习
- Javascript 面向对象编程(一)——封装
- JavaScript DOM 编程艺术(第2版) 读后感
- BOM、DOM学习笔记——JavaScript
- JS文本框不能输入空格验证方法
- 折腾一天,获取下列多选框的所有选中值,原生js可直接通过obj.val()来获取,可jq不行,要通过循环取值来获取;
- javascript精华技巧
- 三款Javascript SPAs框架资料整理和总结
- js根据document接口查找dom节点的方法
- 将csv导出json格式
- js截取n个字符(中文为2个字符)
- JSP中文乱码解决方案
- 一个简单的js 倒计时问题
- js 在iframe子页面获取父页面元素,或在父页面 获取iframe子页面的元素的几种方式