zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    flask 第三方组件
    Flask基础与进阶
    odoo10 视图
    odoo10 ORM操作
    odoo10基础
    字典的setdefault方法
    redis常用操作
    git常用命令与操作
    vue_axios
    odoo 权限设置
  • 原文地址:https://www.cnblogs.com/saintdingspage/p/11015655.html
Copyright © 2011-2022 走看看