zoukankan      html  css  js  c++  java
  • 关于闭包我想说的

    闭包是保护并重用局部变量的机制
    为什么用: 全局变量: 优: 随处可用,可重用,缺: 易被污染
    局部变量: 优: 仅在函数内用,安全,缺: 不可重用
    何时使用: 希望重用一个变量,又不希望被污染时-保护局部变量
    如何定义: 3步:
    1. 定义受保护的局部变量
    2. 定义内层函数专门操作受保护的变量
    3. 定义外层函数将受保护的变量和操作变量的函数封装起来,外层函数将内层函数返回到外部

    <script>

    function fun(){
    for(var i=0,arr=[];i<3;i++){
    //函数定义时不执行函数体
    arr[i]=function(){return i};
    }//i=3
    return arr;
    }
    var funs=fun();
    //funs:[
    // function(){return i},
    // function(){return i},
    // function(){return i}
    //]
    console.log(funs[0]());//3
    console.log(funs[1]());//3
    console.log(funs[2]());//3

    function f(){
    var n=999;
    /*window.*/nAdd=function(){n++};
    return function(){return n;}
    //n=999
    }
    var get=f();
    //f共抛出了几个内层函数:
    //get: function(){return n;}
    //nAdd: function(){n++}
    console.log(get());//999
    nAdd();
    console.log(get());//1000

    </script>

  • 相关阅读:
    mysql的权限定义
    数据库的启动流程和关闭介绍/mysql初始化配置文件
    SQL 执行顺序
    AJAX 同步请求锁浏览器
    JSON
    Json.NET
    JSON.parse()和JSON.stringify()
    the XMLHttpRequest Object
    命名方式
    varchar 和 nvarchar 的区别和使用
  • 原文地址:https://www.cnblogs.com/tracy-zhu/p/5758170.html
Copyright © 2011-2022 走看看