# 作用域和作用域链 #

## 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(第二次调用)

转载于:https://www.cnblogs.com/luowen075/p/6135839.html

作用域和作用域链 —javascript面向对象高级相关推荐

  1. 闭包 —JavaScript面向对象高级

    # 闭包 # 我的理解:面试时,先说作用域链,再说闭包产生的原因,然后是垃圾回收GC,最后说闭包. a.一个函数内部声明的变量,就是它的私有变量.        b.在javascript中特性中,函 ...

  2. javascript(面向对象,作用域,闭包,设计模式等)

    javascript(面向对象,作用域,闭包,设计模式等) 1. 常用js类定义的方法有哪些? 参考答案:主要有构造函数原型和对象创建两种方法.原型法是通用老方法,对象创建是ES5推荐使用的方法.目前 ...

  3. Javascript的作用域,作用域链,闭包

    1,作用域和作用域链概念 作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期.在JavaScript中,变量的作用域有全局作用域和局部作用域两种. 1.1 全局作用域,在代码 ...

  4. javascript精雕细琢(三):作用域与作用域链

    目录 引言 1.执行环境 2.作用域与作用域链 引言 作用域与作用域链是JS应用中无时无刻不在影响程序运行的关键属性,但是由于它的不可见性,或者说它存在的过于普遍,简直就像空气一样.所以对它的谈及,都 ...

  5. 图解 | JavaScript的作用域和作用域链

    文 / 景朝霞 来源公号 / 朝霞的光影笔记 ID / zhaoxiajingjing 图 / 自己画 ❥❥❥❥点个赞,让我知道你来过~❥❥❥❥ 前情提要: 题目 | let和var的区别(一.二) ...

  6. 深入理解Javascript作用域和作用域链

    什么是作用域 作用域是代码运行时某些特定的部分中变量.函数和对象的可访问性,换句话说,作用域决定了代码块中变量和其他资源的可见性 作用域共有两种工作模型 词法作用域(静态作用域) 动态作用域 词法作用 ...

  7. JavaScript 开发进阶:理解 JavaScript 作用域和作用域链(上)

    作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理.今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望 ...

  8. JavaScript重难点解析4(作用域与作用域链、闭包详解)

    JavaScript重难点解析4(作用域与作用域链.闭包详解) 作用域与作用域链 作用域 作用域与执行上下文 作用域链 闭包 闭包理解 将函数作为另一个函数的返回值 将函数作为实参传递给另一个函数调用 ...

  9. JavaScript 开发进阶:理解 JavaScript 作用域和作用域链

    作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理.今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望 ...

最新文章

  1. map(&:name)在Ruby中是什么意思?
  2. BugkuCTF-Misc:细心的大象
  3. 使用 Palette 让你的 UI 色彩与内容更贴合
  4. SpringBoot用JdbcTemplates访问Mysql
  5. WEB前端 vue学习一使用 vue-cli 搭建项目
  6. Linux里su报错bash不是目录,Linux基础:关于su 命令的的几个相关报错
  7. vuex构建vue项目_如何使用Vue.js,Vuex,Vuetify和Firebase构建单页应用程序
  8. android camera滑动,Android怎么实现小米相机底部滑动指示器
  9. vue底部跳转_Vue中底部tabBar切换及跳转
  10. microsoft store 安装包_LOL英雄联盟手游官方安装包
  11. c语言的按位取反运算符
  12. 剪贴板是计算机系统,Windows7电脑剪切板在哪?
  13. DNS请求报文和响应报文解析
  14. SSD-Tensorflow项目源码学习:将数据集转化为为TFR文件
  15. HEVC编码结构:Slice和Tile
  16. [linux学习笔记] GCC环境安装问题
  17. Android人脸检测方案汇总
  18. DES加解密算法原理详解与实现
  19. lua attempt to index field ? a nil
  20. 如何在采购管理中最大化利用技术?

热门文章

  1. 如何检查某个用户是否具有某个权限对象上定义的某种权限
  2. Webpack 10分钟入门
  3. 高中计算机省赛试题,西店中学计算机信息学竞赛测试试卷、答题卷和答案(一)...
  4. mysql 回表查询优化_MySQL中的回表查询与索引覆盖:一次百万级别分页查询使用Limit 从90秒到0.6毫秒的优化...
  5. 用iframe transform: scale() 缩小后点不到按钮_“打分”或者“打多少分”用英文可以怎样去表达?...
  6. python增量更新数据,Python中的增量最近邻算法
  7. java date postmax_Postman支持的几种数据类型请求方式
  8. python飞机大战资料-Python之游戏开发-飞机大战
  9. lotus php,LotusPhp笔记之:Cookie组件的使用详解
  10. sqlalchemy安装以及使用_防火阀的安装以及使用特点详细介绍