js闭包的定义与应用

it2022-05-05  118

 

定义

  闭包是在另一个函数(称为父函数)中定义的函数,并且可以访问在父函数作用域中声明和定义的变量。

  闭包可以访问三个作用域中的变量

  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  //全局声明:abc

   childrenFunction 是在 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


最新回复(0)