zoukankan      html  css  js  c++  java
  • JS 作用域及作用域链

    一、作用域

      在 Javascript 中,作用域分为 全局作用域 和 函数作用域

      全局作用域:

        代码在程序的任何地方都能被访问,window 对象的内置属性都拥有全局作用域。

       函数作用域:

        在固定的代码片段才能被访问

      

      例子:

        作用域

        作用域有上下级关系,上下级关系的确定就看函数是在哪个作用域下创建的。如上,fn作用域下创建了bar函数,那么“fn作用域”就是“bar作用域”的上级。

        作用域最大的用处就是隔离变量,不同作用域下同名变量不会有冲突。

        变量取值:到创建 这个变量 的函数的作用域中取值

     

    二、作用域链

      一般情况下,变量取值到 创建 这个变量 的函数的作用域中取值。

      但是如果在当前作用域中没有查到值,就会向上级作用域去查,直到查到全局作用域,这么一个查找过程形成的链条就叫做作用域链。

    复制代码
    var x = 10;
    
    function fn(){
        console.log(x);
    }
    
    function show(f){
        var x = 20;
        (function(){
           f();    // 10
        })()  
    }
    
    show(fn);
    复制代码

      作用域链

  • 相关阅读:
    按格式读取csv文件内容
    C#分块拷贝大文件
    在 Active Directory 上也有 LINQ 可以用了:LINQ to Active Directory
    CSVDE
    lucene索引查看工具luke和文本提取工具Tika
    Perf工具
    RHEL7.2安装
    Hive on ES
    灰度发布
    LSM树由来、设计思想以及应用到HBase的索引
  • 原文地址:https://www.cnblogs.com/gxw123/p/13288648.html
Copyright © 2011-2022 走看看