一个例子让你体验javascript闭包
2015-07-05 15:27
507 查看
以下内容太过暴力,请成年人在未成年人的陪同下观看!!!转载一定要注明本文出处:啊哒木木。
闭包的定义一般有两种:1认为闭包是符合一定条件的函数;2认为闭包是函数及其相关环境组合而成的实体,,即创建一个能显式表示引用环境的东西,并将它与相关的子程序捆绑在一起,这样捆绑起来的整体称为闭包。个人倾向于第二种定义。
示例代码:
我们看代码,第11行和第12行的输出我们可以看出,形成闭包后,再往b函数内传形参已经不好使了。
第10行、第13行和第15行,我们可以看出,重新声明g,之前的闭包销毁,建立新的闭包。
第16、17、18行,我们可以看出,建立了两个闭包,互不影响。
第20行,告诉我们,只有通过闭包才能访问到函数的内部变量,直接访问不到,除非闭包提供一个return,类似于接口
闭包的定义一般有两种:1认为闭包是符合一定条件的函数;2认为闭包是函数及其相关环境组合而成的实体,,即创建一个能显式表示引用环境的东西,并将它与相关的子程序捆绑在一起,这样捆绑起来的整体称为闭包。个人倾向于第二种定义。
示例代码:
var a=20000; function b(num){ var a=num; var x=100; function c(){ console.log(a++); } return c; } g =b(5); g(); //5 g(); //6 g =b(5); g();//5 g =b(12); g(); //12 d =b(5); g(); //13 d(); //5 console.log(a); //20000
我们看代码,第11行和第12行的输出我们可以看出,形成闭包后,再往b函数内传形参已经不好使了。
第10行、第13行和第15行,我们可以看出,重新声明g,之前的闭包销毁,建立新的闭包。
第16、17、18行,我们可以看出,建立了两个闭包,互不影响。
第20行,告诉我们,只有通过闭包才能访问到函数的内部变量,直接访问不到,除非闭包提供一个return,类似于接口
相关文章推荐
- 【JSP】三种弹出对话框的用法实例
- javascript去除字符串中所有标点符号和提取纯文本
- JS正则表达式之特殊符号
- javascript中对变量类型的判断
- 解析JS运动
- 请实现一个js脚本,要求做到将数字转化为千分位表示如:10000 转化为10,000
- javascript原型链继承
- js 定义构造函数
- javascript中对变量类型的判断
- JavaScript 表格隔行变色
- javascript 获取多选框选中的个数
- javascript 自定义函数,使用class
- HTML滚动字幕代码参数详解及Js间隔滚动代码
- javascript内存泄露
- javascript实现控制的多级下拉菜单
- jsp EL 表达式
- 如何提高JavaScript代码质量
- jsoncpp的读写操作
- jsoncpp在vs2013上的编译
- JavaScript教程