JavaScript闭包

前端开发 作者: 2024-08-22 23:05:01
闭包是JavaScript中的一个难点,同时也是它的特色,JavaScript的很多高级应用都要依靠闭包来实现。以下是我学习闭包的记录,希望对你有些帮助。
var a = 99;
function f1() {
    console.log(a);
}
f1();
function f1() {
    var a = 99;
}
console.log(a);
function f1() {
    var a = 99;
    function f2() {
        console.log(a);
    }
}
function f1() {
    var a = 99;
    function f2() {
        console.log(a);
    }
    return f2;
}
var result = f1();
result();
function A() {
    var count = 0;
    function B() {
       count++;
       console.log(count);
    }
    return B;
}
var C = A();
C(); // 1
C(); // 2
C(); // 3
function A(x) {
    function B(y) {
        console.log(x+y);
    }
return B;
}
var C = A(3);
C(5); //8
function outer(){
    var num = 0; //内部变量
    return function add() { //通过return返回add函数,就可以在outer函数外访问了
        num++; //内部函数有引用,作为add函数的一部分了
        console.log(num);
    };
}
var func1 = outer();
func1(); //实际上是调用add函数, 输出1
func1(); //输出2 因为outer函数内部的私有作用域会一直被占用
var func2 = outer();
func2(); // 输出1  每次重新引用函数的时候,闭包是全新的。
func2(); // 输出2  
原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_66919.html
JavaScript闭包