闭包 Closures
★闭包:Closures(闭包)是使用被作用域封闭的变量,函数,闭包等执行的一个函数的作用域。通常我们用和其相应的函数来指代这些作用域(可以访问独立数据的函数)
//来自MDN开发者网络解释;------上面①句话说明闭包是一个作用域------
//来自MDN开发者网络解释;-----上面②句话说明闭包是一个函数-----(可以被函数指代)~~★~~★~~自我理解:闭包
概念:闭包:Closures(闭包)是使用被作用域封闭的变量,函数,闭包等执行的结果是一个函数的这个作用域。通常我们用和其相应的函数来指代这些作用域(可以访问独立数据的函数)
闭包就是一个函数类型的作用域a返回的结果是一个函数(函数也是作用域b),
这个函数可以使用产生它的作用域的成员,即作用域b可以访问和使用作用域a的成员和方法等
举个例子说明一下,例如:
function test() { //---------------------------假设作用域 a;
var a = 10; //-------------------------作用域a的成员(属性)
return function value() { --------------作用域a的返回值
console.log(a);
}
}
// var f2 = test(); //----------------------------假设产生的作用域 b;console.log((test())());
或者console,log(f2())//---------------------------//作用域b使用作用域a的成员和方法等
//实现一个作用域访问和使用一个作用域function fun() {
var a = (test())(); //相当于f2();
}
fun();
局部变量不可以被外部访问,但闭包可以让局部变量被外部访问,
此时出现可以访问私有变量的现象称为闭包;也就是说闭包可以延展这个局部作用域这个私有成员不被自动销毁
★自我总结:闭包有三大特性:
①闭包是一个可以用函数指代的作用域;
②闭包可以实现一个作用域访问另一个局部作用域的成员和方法;
③闭包可以延展一个局部变量不被自动销毁。
谈谈我对js高级的闭包的理解
版权声明:知识改变命运,科技改变生活,学习适应改变! https://blog.csdn.net/superaistar/article/details/82630761
猜你喜欢
转载自blog.csdn.net/superaistar/article/details/82630761
今日推荐
周排行