JS执行上下文及作用域浅谈(一)
前言
最近打算深入学习下js的一些基本而又重要的概念,因为即便技术在不断更新,但基本的思想是不变的,只要能够掌握这些基础,再去学习的新的东西就能事半功倍。以此篇文章做个记录。
执行上下文
定义:代码被解析和执行时所在的环境。
类型:执行上下文分为三种类型
全局执行上下文:只有一个,在浏览器中的全局对象就是window对象。函数执行上下文:有无数个,在函数被调用时被创建,每次调用函数都会创建一个新的执行上下文。Eval函数执行上下文:指运行在eval函数中的代码,少用也不建议使用。
创建:分为两个阶段:(1)创建阶段(2)执行阶段
创建阶段
确定this的值,也被称为 This Binding。LexicalEnvironment(词法环境)组件创建。VariableEnvironment(变量环境)组件创建。
This Binding
在全局执行上下文中,this的值指向全局对象,在浏览器中也就是window对象,在nodejs中为这个文件的module对象。在函数执行上下文中,this的值取决于函数的调用方式,有默认绑定、隐式
共有 0 条评论