js 常见知识点

function box() {

    var user = 'TT';

    return function () {     //通过匿名函数返回 box()局部变量

        return user;

    };

}

box() 返回的是一个匿名函数 

var b = box();  


-----------------------------------------

 
 (function (){
     var a = 10;
  add.onclick = function (){
    a++;
    span.innerHTML = a;
  }
    })()

 


 

 


 

闭包是可访问一个函数作用域里变量的函数

javascript中: (function(){})()是匿名函数,主要利用函数内的变量作用域,避免产生全局变量,影响整体页面环境,增加代码的兼容性。

(function(){})是一个标准的函数定义,但是没有复制给任何变量。所以是没有名字的函数,叫匿名函数。没有名字就无法像普通函数那样随时随地调用了,所以在他定义完成后就马上调用他,后面的括号()是运行这个函数的意思

 

函数声明可在当前作用域下提前调用执行,函数表达式需等执行到该函数后,方可执行,不可提前调用。

 

 

user 是box函数的私有属性 外部无法访问到,通过闭包可以访问到

闭包的最大特性就是,如果里函数引用(or访问,这俩词在这个语境下是等价的)了外函数的某个变量,那这个变量就能享受和全局变量一样的特权,丫不会被回收

 

函数里return 一个匿名函数return外层函数的变量,当外部调用的时候,外层函数的变量不会被销毁

 

 

 

闭包就是能够读取其他函数内部变量的函数。

即函数定义和函数表达式位于另一个函数的函数体内。而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数和声明的其他内部函数。当其中一个这样的内部函数在包含它们的外部函数之外被调用时,就会形成闭包。也就是说,内部函数会在外部函数返回后被执行。而当这个内部函数执行时,它仍然必需访问其外部函数的局部变量、参数以及其他内部函数。这些局部变量、参数和函数声明(最初时)的值是外部函数返回时的值,但也会受到内部函数的影响。-----个人理解就是:闭包是能够读取其他函数内部变量的函数,即在外面可以调用函数中的函数的变量,其实他就是将函数内外部连接起来的桥梁
————————————————
版权声明:本文为CSDN博主「小亚美美」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yummy_go/article/details/50663081

 

posted @ 2020-02-26 01:07  haveProgress  阅读(168)  评论(0编辑  收藏  举报