【前端圭臬】十一:从规范看 JavaScript 执行上下文(下)
前言
这篇文章我们接着看执行上下文,主要是 JS 中的闭包和 this 机制两个部分。虽然我们还是从规范出发,但其实这两个东西的概念规范里提的都不多,实际应用起来水又很深,容易把握不住,所以这一篇更多的是举例说明。
1 JavaScript 中的闭包
1.1 规范中的闭包
闭包(closure)这个名词用于计算机中,最初的含义是 “用于描述 λ 表达式和其执行环境的一系列信息”。考虑到当时盛行基于 λ 演算的函数式编程语言,λ 表达式其实可以引申为今天我们所说的 “函数”。
不同于其它语言,JavaScript 的函数在定义上就包含一个 [[Environment]]
字段,其实就是函数执行时的 外层词法环境,那么把闭包的经典定义套用到 JavaScript 上,对应的其实就是 JavaScript 函数对象 本身。
然而,JavaScript 工程师口中的闭包与规范中的闭包概念并不相同。
1.2 工程实践中的闭包
我们先从一段代码着手分析:
// 函数定义
function foo()
【前端圭臬】十一:从规范看 JavaScript 执行上下文(下)相关推荐
- 【前端圭臬】十:从规范看 JavaScript 执行上下文(上)
前言 接下来我们来啃一个硬骨头,JavaScript 的 执行上下文(Execution Context). 与执行上下文相关的知识有很多弯弯绕绕,不过没关系,我们只需要以两个主要问题为线索展开.第一 ...
- 深入理解JavaScript执行上下文与作用域链
文章目录 前言 一.执行上下文 1.类型 2.生命周期 2.1.创建变量对象 2.2.this绑定 2.3.创建作用域链 总结 前言 只有理解了执行上下文与作用域链,才能更好地理解JavaScript ...
- 前端百题斩【010】——通俗易懂的JavaScript执行上下文
写该系列文章的初衷是"让每位前端工程师掌握高频知识点,为工作助力".这是前端百题斩的第10斩,希望朋友们关注公众号"执鸢者",用知识武装自己的头脑. JavaS ...
- 聊一聊javascript执行上下文
跟大家聊聊js的执行上下文 一,相关概念 EC : 执行上下文 ECS : 执行环境栈 VO : 变量对象 AO : 活动对象 scope chain :作用域链 二,执行上下文 javascript ...
- Javascript 执行上下文(ES3)
简单理解:执行上下文是评估和执行Javascript代码的环境的一个抽象概念.任何代码在JavaScript中运行时,都在执行上下文中运行. 以ES3举例,对于每个执行上下文,都有三个重要属性: 变量 ...
- javascript --执行上下文,作用域
执行上下文 顾名思意就知道他是动态的,只在代码运行的时候产生 作用域 顾名思意就知道它是一个"领域",并且这个"领域"在一开始就规划好, 不会在改, var d ...
- 前端基础进阶(二):执行上下文详细图解
我们在JS学习初期或者面试的时候常常会遇到考核变量提升的思考题.比如先来一个简单一点的. console.log(a); // 这里会打印出什么? var a = 20; 暂时先不管这个例子,我们先引 ...
- javascript执行上下文
执行上下文(Excution Context) Js代码在引擎中是以"一段一段"的方式来执行的,而非一行一行来分析执行的.而这"一段一段"的可执行代码无非三种: ...
- 【前端圭臬】一:写给入坑前端的你
专栏目录 导论 [前端圭臬]一:写给入坑前端的你 HTML 篇 [前端圭臬]二:你知道的和不知道的 HTML CSS 篇 [前端圭臬]三:详解 CSS 选择器 [前端圭臬]四:CSS 核心机制--如何 ...
最新文章
- 二叉树的层序遍历 II
- gnome3增加自定义程序快捷方式
- 【转载】推荐系统-矩阵分解-SVD-通俗易懂
- python random库下载_python基础 — random库
- 7000字 23张图,Pandas一键生成炫酷的动态交互式图表
- TPLink 备份文件bin文件解析
- 大叔手记(21):汤姆大叔博客园开博100天总结
- Linux下编译、链接、加载运行C++ OpenCV的两种方式及常见问题的解决
- python3 缺少PIP解决办法
- mysql 查看锁表_MySQL的四种事务隔离级别
- 万能表单资料管理系统
- 地图找房(四)02——小区房源列表展示和隐藏 小区房源列表数据填充 接口数据-图片地址的基准路径
- 一文搞定十大排序算法(细)
- “IndentationError: unindent does not match any outer indentation level“ 错误解决
- Embase,PubMed,Cochrane,WebOfScience,ScienceDirect检索方法
- Dubbo整合Nacos
- 3.24虎牙直播一面
- linux单进程最大内存,x64 Linux中的单进程最大可能内存
- java pdf模板填充生成pdf打印 (亲测有效)
- css3新增属性sticky