闭包
来源:互联网 发布:linux备份系统 编辑:程序博客网 时间:2024/05/21 14:43
javaScript是没有块级作用域,每一个函数就是一个作用域,函数里定义的变量,外面是访问不到的!
var fun = function() {
var i = 0;
console.log(i); //0
}
fun();
console.log(i); //Uncaught ReferenceError
要是想访问一个函数里面定义的变量可以通过闭包来访问,在一个函数(外函数)里面定义一个函数(内涵数),内函数有权访问外函数的变量。
function a() {
var a = 0;
function b() {
console.dir(a);
}
b()
}
a(); //控制台输入0
通常这样做没有多大意义,我们可以将里面定义的函数返回回来。
function a() {
var a = 0;
function b() {
console.dir(a);
}
return b;
}
var f = a();
f(); //输出还是0
原理:当一个函数被执行的时候,会创建它的执行环境和作用域链。
0 0
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 闭包
- 如何看待Tencent AI 人脸检测结果在FDDB上的逆天表现?
- 超级素数实现算法
- 关于URL地址栏跨域出错问题
- Android Studio常见错误之:Rendering Problems/The following classes could not be instantiated
- OpenCV Python教程(2、图像元素的访问、通道分离与合并)
- 闭包
- tetst
- Windows10搭建Node.js环境
- AndroidStudio中OpenCV环境搭建
- spark的架构思考(一)
- Java使用JDBC连接SQL Server数据库
- IT人生读书规划
- dojo define定义模块一()
- PHP实现无限极分类