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