简介闭包

什么是闭包?

形式上;多成函数嵌套,实质上:在外部函数体中;执行内嵌的函数。在他爸爸的范围下执行儿子的方法
注意;不是说在函数中执行函数就是闭包了,例如;在函数中执行自己的行数是递归;在函数中执行自身以外的函数通过参数形式传进来;就是回调函数
要理解闭包,首先必须理解js特殊的变量作用域。
变量的作用域无非就是两种:全局变量和局部变量。就在于函数内部可以直接读取全局变量。函数的内部,再定义一个函数。
举一个例子


function Text() {
    var name = "DengJiaLi";
    function alertName() {
        alert(name);
    }
    return AlertName;
}
 
var Funct = Text();

运行这段代码 在于内部函数 alertName() 在执行前,被外部函数返回。JavaScript中的函数会形成闭包,闭包是由函数以及创建该函数的词法环境组合而成。这个环境包含了这个闭包创建时所能访问的所有局部变量。Funct 是执行 Text 时创建的 alertName 函数实例的引用,而 Text 实例仍可访问其词法作用域中的变量,即可以访问到 name 。由此,当 Funct 被调用时,name 仍可被访问,其值 DengJiaLi 就被传递到alert中。
这样通过另一个函数调用这个局部变量的过程叫做闭包。闭包可以用在许多地方。它的最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。

猜你喜欢

转载自blog.csdn.net/qq_43294510/article/details/88143132