zoukankan      html  css  js  c++  java
  • Javascript闭包(狗血剧情,通俗易懂)

    我们先来看一个闭包的函数:

     function a() {
                var i = 0;
                function b() {
                    alert(++i);
                }
                return b;
            }
    
            var c = a();
            c();
            c();
            c();

    等价于

     function 男1() {
                var 孩子 = 0;
                function 女1() {
                    alert(++孩子);
                }
                return 女1;
            }
    
            var 男2 = 男1();
            男2();
            男2();
            男2();

    那么接下来我们分析分析闭包这个狗血的剧情。

    javascript规则:如果只是两个人互相引用,那么GC(婚姻登记处)就回收这个两个人(PS:省的他们乱搞!)。

    闭包:就是三个人,你中有我,我中有他,他中有你,这么复杂的关系,GC就懒得烦管了。

    剧情:

             1、男1的心里(Scope chain  作用域)中有女1,女1的肚子(scope chani 作用域上的arguments )有孩子      男1和女1关系

              PS:如果只是男1和女1,那么就符合了javascript的规则,直接奔向幸福生活

             2、万恶的男2登场,男2也喜欢女1,并告诉男1你把她让给我吧,男1真的让给了男2

              PS:强烈谴责男2和男1,最大的问题是女1已经有男1的小孩了

             3、男2调用了女1,居然生了男1的孩子

          PS:以上剧情真心狗血,因此闭包,不是特殊环境请勿使用,呵呵~~

             

  • 相关阅读:
    论自己电脑如何搭建服务器
    nodejs + express + art-template + mongodb简单项目
    npm和yarn使用
    Linux内核编译
    Linux 网络编程
    Linux进程管理
    LeetCode1576. 替换所有的问号
    LeetCode392. 判断子序列
    LeetCode674. 最长连续递增序列
    剑指 Offer 48. 最长不含重复字符的子字符串
  • 原文地址:https://www.cnblogs.com/cainiaoguoshi/p/4204788.html
Copyright © 2011-2022 走看看