博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端笔记-作用域链的一些理解加记录(JS高级程序设计读书笔记1)
阅读量:6208 次
发布时间:2019-06-21

本文共 906 字,大约阅读时间需要 3 分钟。

---恢复内容开始---

首先要说的是执行环境。在js中这个概念非常基础,但是也非常重要
执行环境定义了变量或函数有权访问的其他数据,决定了他们各自的行为。每一个执行环境都有一个与之关联的变量对象[variable object]
环境中定义的所有变量和函数都保存在这个对象中,我们编写的代码是无法直接访问到这个对象的,但是解析器在处理数据时会在后台使用它.
实行环境分为两类,一类是全局执行环境,还有一类是局部执行环境.
在web浏览器中全局执行环境被认为是window对象,因此,所有全局对象和函数都是作为window对象的属性和方法创建的
执行环境的销毁:某个执行环境中的所有代码执行完毕后,该环境即被销毁保存在其中的所有变量和函数定义也随之销毁[所谓的代码执行完毕,比如全局环境,直到应用程序退出,例如关闭网页或浏览器时才被销毁]
函数与执行环境:每一个函数都有自己的执行环境。
当代码在一个环境中执行时,会创建变量对象的一个作用域链[scope chain]作用域链的用途是保证对执行环境有权访问的所有变量和函数的有序访问。(意思就是变量对象里面拥有所有的变量与对象,而它的作用域链使用来访问其中的成员的)
作用域链的前端就是当前代码,执行环境所在的变量对象
作用域链的下一个变量对象来自于包含[外部]环境作用域链11条列举下一个对象包含下一个对象包含下一个对象
 
我对执行环境和作用有点雨点量对象的理解就是可不可以访问到变量或者函数是由变量对象决定的。变量对象是在作用域链上面作用,作用域链上面是否有变量对象就可以判断他是不是可以访问这个函数或变量
 
真在做臃肿上面的延长作用域链,增加变量对象有两个方法是try catch的catch块和with。
都是在作用链的前端添加一个变量对象。具体实现上,两者稍有不同,
catch块是创建一个新的变量对象,其中包含的是对抛出的错误对象的声明。
而with语句则是添加。
 
下次讲讲闭包。也是个大麻烦,尽早搞清楚对接下来的学习十分必要
 
 

---恢复内容结束---

转载于:https://www.cnblogs.com/ZoeyXie/p/6950498.html

你可能感兴趣的文章
如何让帝国CMS7.2搜索模板支持动态标签调用
查看>>
apache 虚拟主机详细配置:http.conf配置详解
查看>>
BABOK - 开篇:业务分析知识体系介绍
查看>>
Java入门系列-22-IO流
查看>>
Template、ItemsPanel、ItemContainerStyle、ItemTemplate
查看>>
MySQL:Innodb page clean 线程 (二) :解析
查看>>
图嵌入综述 (arxiv 1709.07604) 译文五、六、七
查看>>
垃圾回收算法优缺点对比
查看>>
正则表达式 匹配常用手机号 (13、15\17\18开头的十一位手机号)
查看>>
GitLab 11.9 正式发布,自动化工具 ChatOps 已开源
查看>>
交换机的基本原理配置(一)
查看>>
android baidupush
查看>>
Lottie 站在巨人的肩膀上实现 Android 酷炫动画效果
查看>>
Linux_异常_08_本机无法访问虚拟机web等工程
查看>>
“陪护机器人”研报:距离真正“陪护”还差那么一点
查看>>
深入框架本源系列 —— Virtual Dom
查看>>
mongodb分布式集群搭建手记
查看>>
您有一个上云锦囊尚未领取!
查看>>
Java Web的web.xml文件作用及基本配置(转)
查看>>
区块链101:区块链的应用和用例是什么?
查看>>