• jquery之闭包


    • 闭包

    常见形式是函数A里面定义一个函数B,并返回函数体的引用,很抽象是不是,具体代码如下:

    function wenwa()
    {
        var i =0;
        function cj()
        {
            console.log("劲儿弟弟吃了"+(++i)+"个馅饼");
        }
        return cj;
    }
    duwa = wenwa();
    duwa();
    duwa();
    duwa();
    duwa();

    输出结果:

    劲儿弟弟吃了1个馅饼
    劲儿弟弟吃了2个馅饼
    劲儿弟弟吃了3个馅饼
    劲儿弟弟吃了4个馅饼

    总结:以上述闭包函数为例,每次执行时,内存中会生成一片区域存放下列代码

    var i =0;
        function cj()
        {
            console.log("劲儿弟弟吃了"+(++i)+"个馅饼");
        }
        return cj;

    之后,把函数wenwa的返回值赋给duwa,回收器无法判定duwa是否还有用,那么duwa对应的是代码区里的变量i和函数体cj()所以变量i没有被释放,因故

    我们看到的结果是每次调用,i在原有基础上不断的加1。

  • 相关阅读:
    CentOS 6.5通过yum的方式安装MySql
    Hbase集群搭建
    Thread类的常见问题
    关hashMap跟hashTable的区别
    mysql 循环插入100w
    Centos 多个mysql数据库
    CentOS 搭建 FastDFS-5.0.5集群
    RPC
    dubbo简述
    自己去看dubbo源码
  • 原文地址:https://www.cnblogs.com/saintdingspage/p/11015655.html
Copyright © 2020-2023  润新知