定义
闭包是在另一个函数(称为父函数)中定义的函数,并且可以访问在父函数作用域中声明和定义的变量。
闭包可以访问三个作用域中的变量
1、在自己作用域中声明的变量
2、在父函数中声明的变量
3、在全局作用域中声明的变量
var globalVar = "abc"; //自调用的函数 (function fatherFunction(fatPart){ //父函数fatherFunction作用域开始 var fatVar = 'F'; //在父函数中声明的变量 //自调用函数 (function childrenFunction(chiPart){ //子函数children作用域开始 var chiVar = 'C'; //在子函数中声明的变量 console.log( "父函数参数:" + fatPart + "父函数中声明:" + fatVar + "子函数参数:" + chiPart + "子函数声明:" + "chiVar" + "全局声明:" + global; ) })(5) //子函数作用域结束,将5作为参数 })(7) //父函数作用域结束,将7作为参数 //父函数参数:7 //父函数中声明:F //子函数参数:5 //子函数中声明:C //全局声明:abcchildrenFunction 是在 fatherFunction 中定义的闭包,可以访问在 fatherFunction 作用域内声明和定义的变量。此外,闭包还可以访问在全局命名空间中声明的变量。
应用编写一个可以实现如下操作的函数
var biBao = F(6); biBao(10); //返回16 biBao(20); //返回26可以创建一个闭包来存放传递给函数 F 的值。被返回的内部函数是在外部函数中创建的,内部函数就成了一个闭包,它可以访问外部函数中的变量。本例中变量 (父函数作用域中的变量) 是 number
function F(number){ return function(a){ console.log(number + a); } } var biBao = F(6); biBao(10); //16 biBao(20); //26
转载于:https://www.cnblogs.com/baby-zuji/p/11189350.html