Javascript中函数从创建到执行完到底发生了什么

211 1 年前
Javascript中函数从创建到调用的过程到底发生了什么,什么活动对象变量对象,执行环境以及作用域链搞得乱七八糟。经过仔细的理解,终于有了一丝的明悟,抓紧写下来~

Javascript中函数从创建到执行完到底发生了什么

函数创建

确定作用域链:

创建函数时,会创建一个包含父级(如果有)==> 父级(如果有) ... 全局变量对象(全局对象)的作用域链并保存在函数内部的[[Scope]]属性中

函数执行

函数上下文建立

**初始化作用域链**
复制函数的[[Scope]]属性中的对象构建起执行环境的作用域链

**创建变量对象**
	1、创建`arguments`对象,形参赋值
	2、函数声明提升
	3、变量声明提升
	4、确实 `this`的指向

激活变量/代码执行

在当前上下文上运行/解释函数代码,并随着代码一行行执行指派变量的值。

执行完

从栈中弹出执行上下文
销毁执行环境的作用域链
分类栏目
© 2018邮箱:11407215#qq.comGitHub沪ICP备12039518号-6