zoukankan      html  css  js  c++  java
  • JavaScript 面向对象学习笔记 -- 闭包

    闭包

    全局变量在函数内部可以访问。

    var n = 999;
    function f1() {
        console.log(n);
    }
    f1(); // 999

    函数内部定义的变量,外部无法访问。

    function f1() {
        var n = 999;
    }
    f1();
    console.log(n); // 报错

    外部访问函数内定义的变量。在函数里再定义一个函数。

    function f1() {
        var i = 0;
        function f2() {
            console.log(i)
        }
        return f2;
    }
    f1()(); // 0

    特点:f2在f1里面定义的,f1需要返回f2

    用途:1. 读取函数内部的变量; 2. 让变量保留在内存中。

    function f1() {
        var n = 1;
        nAdd = function() {
            n = n + 1;
        }
        function f2() {
            console.log(n);
        }
        return f2;
    }
    f1()(); // 1
    nAdd();
    f1()(); // 2

    优缺点:

    优点:

    • 有利于封装
    • 可以访问局部变量

    缺点:

    • 内存占用严重,引起内存泄漏
  • 相关阅读:
    UI 简单练习(联动实例)
    软件工程与计算机科学
    中文编程
    自我介绍
    曾经的梦想
    即时通讯研究学习
    即时通讯研究学习
    创业
    2015-08-12-火影
    看<后海不是海>的随想
  • 原文地址:https://www.cnblogs.com/lwl0812/p/9680076.html
Copyright © 2011-2022 走看看