zoukankan      html  css  js  c++  java
  • 作用域和作用域链 —javascript面向对象高级

    # 作用域和作用域链 #

      ## 1.作用域 ##

         定义:函数声明时,会确定当前函数的作用域,所谓作用域就是作用的范围(地盘)
        
      全局作用域:

               a. window是顶层对象,是一切函数,变量,对象的终点,
               b. 所以在全局范围内定义的函数或变量,它都是属于window对象的属性或方法。
               c. 其作用域范围是全局,任何地方均能调用。



      局部作用域:

              a. 函数声明时,函数内部的作用域就是局部作用域,
              b. 在函数内部通过var 声明的变量 和 声明式的函数均是该函数的私有变量或函数,
              c. 一般情况下,函数外部不能访问函数内部的私有变量或函数


      作用域链:

              a.函数内部调用某个变量的时候,会在当前作用域中查找该变量是否被声明
              b.如果没有被声明,就会去其上一层作用域中查找
              c.直到查找到全局作用域,如果还是没有,则为not define

      

      作用域和执行上下文的关系:
                 
         var a = 10, b = 10;
           function fn(x){
              var a = 100,c = 200;
                  function  bar(x){
                     var a = 1000,d = 4000;
                  }
               bar(100)
               bar(200)
           }
         fn(10)

       全局作用域 : 上下文环境内保存 a = 10,b = 10
       fn作用域 : 上下文环境内保存 a = 100,x = 10 ,c = 200
       bar作用域:上下文环境内保存 a = 1000,d =4000,x = 100(第一次调用) 200(第二次调用)

  • 相关阅读:
    【LeetCode】链表 linked list(共34题)
    Construct Binary Tree from Preorder and Inorder Traversal<leetcode>
    Triangle <leetcode>
    Jump Game <leetcode>
    C++学习笔记 <const限定词>
    Search for a Range <leetcode>
    Subsets <leetcode>
    各种排序算法总结
    Unique Paths II <leetcode>
    C++学习笔记 <hash_map> <散列映射>
  • 原文地址:https://www.cnblogs.com/luowen075/p/6135839.html
Copyright © 2011-2022 走看看