zoukankan      html  css  js  c++  java
  • 私有作用域的初级理解

    1.全局变量:全局作用域下声明(预解释)的变量是全局变量
    2.私有变量:私有作用域下,函数的形参和声明的变量
    3.作用域链:在私有作用域下,执行代码的时候遇到变量,是私有变量则取私有变量,否则往上一级作用域查找直到找到
    4.函数每次执行的时候,会形成一个新的私有作用域,然后按照如下步骤进行:
      a.如果有形参先给形参赋值
      b.进行当前私有作用域的预解释
      c.当前作用域的代码从上到下执行
    5.闭包:函数执行形成新的私有作用域,里面的私有变量只在里面有效,与外面的毫无关系

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <p>
            模拟浏览器:
                1.进去全局作用域,开始预解释,
                var varible,
                fn="function fn(varible){
                    console.log(varible);
                  var varible = "私有";
                  console.log(varible);
                    }"
             预解释完毕
             2.开始执行
             全局作用域:
                 varible="全局"
                 打印varible("全局")
             函数执行创建新的私有作用域:
                 形参:varible="参数";
                 预解释: varible已经声明了不再声明,预解释完毕
                 开始执行: 打印varible("参数"),varible="私有" 重新赋值,打印varible("私有") 执行完毕
    
        </p>
        <script>
            var varible = "全局";
            function fn(varible){
                console.log(varible);
              var varible = "私有";
              console.log(varible);
            }
            console.log(varible);
            fn("参数")
    
        </script>
    </body>
    </html>

    点击查看详情

    看到一个较好的demo: http://www.qdfuns.com/notes/21146/32eab983640afc7ef16b266440db1f5c.html

  • 相关阅读:
    mysql读写分离
    mysql主从同步
    mysql修改密码
    mysql单机安装以及语法,alter表
    zabbix主动监控
    数据集
    K-近邻算法
    常规套路
    区分子类方法中重名的三种变量
    Java的数学工具类Math
  • 原文地址:https://www.cnblogs.com/2han/p/6268532.html
Copyright © 2011-2022 走看看