zoukankan      html  css  js  c++  java
  • 闭包

    /**
     * 闭包--函数内定义函数,返回子函数(函数外的变量引用函数内的函数)
     *
     * 实例函数对象(--对象未释放,被保存在内存中,内部变量的值始终保持在内存中)
     *
     * 1.内部函数可以引用外部函数的变量或参数
     *
     * 2.返回内部函数(外部函数只实例一次,变量始终保存在内存中!)
     *
     * js回收机制--对象不被引用或两个对象相互引用,不被第三者引用.
     *
     * 定义在一个函数内的函数;返回子函数就可以访问局部的变量
     *
     * 闭包允许你访问存在于外部函数中的变量与参数,它并不是使用该变量创建时的值,相反,它使用外部函数中该变量最后的值
     *
     * 1.一个是前面提到的可以读取函数内部的变量;
     * 2.另一个就是让这些变量的值始终保持在内存中;
     *
     * 并没有被执行,只构建了一个函数体为”print(i);”的函数对象;
     * 而当i=4时,迭代停止,外部函数返回,当再去调用outter[0].invoke()时,i的值依旧为4
     *
     */

    pAry[i].onclick = function(arg){
    		return function(){
    			alert(arg);
    		}
    	}(i);
    	continue;
    	(function(arg){
    		var temp = i + "aa";
    		pAry[i].onclick = function() {
    			alert(temp);
    		} 
    	})(i)//闭包
    
    
    function test(){
    	var arr= ["one","two","three","four"];
    	for(var i=0; i<arr.length;i++){
    		var x = {};
    		x.no = i;
    		x.text = arr[i];
    		x.initvo = function(arg){	//并没有被立即执行,而当i=4时,迭代停止,i的值依旧为4
    			return function(){
    				console.log(arg);
    			}		
    		}(i);
    		outer.push(x);
    	}
    }
    test();	//只实例化一次,对象被保存在内存中;
    
  • 相关阅读:
    POJ 3177 Redundant Paths(无向图缩点)
    POJ 1502 MPI Maelstrom
    LightOJ 1094
    POJ 1564 Sum It Up(深搜)
    C语言复习6_doWhile循环
    进阶学习
    C语言复习5_调试
    C语言复习4_while循环
    C语言复习3_条件结构
    C语言复习2_运算符
  • 原文地址:https://www.cnblogs.com/xcai/p/3183309.html
Copyright © 2011-2022 走看看