黑马程序员技术交流社区

标题: javascript 多重闭包函数 [打印本页]

作者: nigori    时间: 2019-4-26 16:39
标题: javascript 多重闭包函数
[HTML] 纯文本查看 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<script>

    function f1() {
        var i = 0;
        return function () {
            console.log(i++);
            var j = 1;
            return function () {
                console.log(j++)
            }
        }
    }
    f1();  // 调用后 返回了一个内部闭包函数

    console.log(f1());  //输出 内部闭包函数

    var f2 = f1();  // 将内部闭包函数 赋值给 f2
    f2();   // 调用内部函数 第一次 输出 0
    f2();  // 调用内部函数 第二次 输出 1 (因为闭包函数 具有私有变量的特性 变量会 一直保存

    f1()();   // 此 写法 等同 与上面 f2()  输出为 0
    console.log(f1()());   // 输出 0 和 内部闭包函数内的函数

    f1()()();    // 输出 0  1
    var ff = f1()();  // 将最里层 函数 赋值给ff 同时输出 0
    ff();  // 调用 最里层函数 第一次 输出  1
    ff(); // 调用 最里层函数 第二次 输出  2
   
</script>
</body>
</html>





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2