js中的闭包
来源:互联网 发布:yum install chrome 编辑:程序博客网 时间:2024/05/31 05:27
function outerFunction(){
var a = 0;
function innerFunction(){
a++;
alert(a);
}
}
innerFunction();
这样写是错误的,因为innerFunction()的作用域在outerFunction()函数的内部,所以在outerFunction()外部调用它是错误的,改成如下闭包形式
function outerFunction() {
var temp = 0;
function innerFunction(){
temp++;
console.log(temp);
}
return innerFunction();
}
var result = outerFunction();
result();//1
result();//2
var result2 = outerFunction();
result2();//1
result2();//2
当内部函数 在定义它的作用域 的外部 被引用时,就创建了该内部函数的闭包 ,如果内部函数引用了位于外部函数的变量,当外部函数调用完毕后,这些变量在内存不会被 释放,因为闭包需要它们.
再看一个例子:
function outerFunction(){
var a = 0;
alert(a);
}
var a = 4;
outerFunction();//0
alert(a);//4
此时输出0 4,这是因为在outerFunction()函数内部声明a时使用的var,所以声明的是一个局部变量,维护a的作用域在outerFunction()内部
再看下面的例子:
function outerFunction(){
a = 0;
alert(a);
}
var a = 4;
outerFunction();//0
alert(a);//0
未完待续。。。
- js中的闭包
- Js中的闭包
- js中的闭包
- js中的闭包
- JS 中的闭包
- js中的闭包
- JS中的闭包
- JS中的闭包
- js中的闭包
- JS 中的闭包
- JS中的闭包
- JS中的闭包
- js中的闭包
- js中的闭包
- js中的闭包
- js中的闭包
- JS中的闭包
- js 中的闭包
- 北京SEO祭司:外链对网站关键词排名作用?
- Meteor + React 学习文档汇总
- ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your
- Spring boot 应用maven 打包 遇到的情况
- git: 添加表情包 提升 github仓库 逼格
- js中的闭包
- Python基础 检测多种语言编码 chardet
- VLC多线程
- C++类型转换
- iOS 实现3Dtouch
- System.IO.Directory.Delete 方法的使用
- postgresql ltree
- 【数据结构课设】校园导游系统
- MySQL函数