zoukankan      html  css  js  c++  java
  • 闭包笔记

    形成闭包

          //函数嵌套函数
            function test(){
                var arr = [];
                for(var i = 0; i < 10; i++){
                    arr[i] = function(){
                        document.write(i + " ");//调用再执行 渲染10个10
                    }
                }
                return arr;
            }
            var myArr = test();
            for(var j = 0; j < 10; j++ ){
                myArr[j]();
            }
    
    

    闭包作用

            function test(){
                var arr = [];
                for(var i = 0; i < 10; i++){
                   (function(j){
                    arr[j] = function(){ //立即执行函数
                        document.write(j + " ");//渲染0,1,2,3,4,5,6,7,8,9
                    }
                   }(i))
                }
                return arr;
            }
    
            var myArr = test();
            for(var j = 0; j < 10; j++ ){
                myArr[j]();
            }
    

    内存泄漏

           //当内部函数被保存到外部时,将会生成闭包。闭包会导致原有作用域链不释放,造成内存泄露
          function a() {
                function b() {//b函数可以拿到a函数的所有成果
                    var bbb = 234;
                    document.write(aaa);
                }
                var aaa = 123;
                return b;//需要(返回)保存到外边
            }
    
            var glob = 100;
            var demo = a();
            demo();
    
            function test(){
                var temp = 100;
                function a(){
                    console.log(temp);
                }
                return a;
            }
            var demo = test();
            demo();
    
  • 相关阅读:
    找出优先要作的工作
    我要作技术研发了
    确定配色方案
    今天公司搬家
    要作界面原型了
    使用自已的命名空间
    进行审核了
    那里有皮肤软件工开发包的源码???
    发葡萄
    作业务规则挺难
  • 原文地址:https://www.cnblogs.com/lsy6/p/13957434.html
Copyright © 2011-2022 走看看