(学习笔记)-------JS执行的原理(一)记录学习的过程

76 阅读1分钟

初始化全局对象

js引擎会在执行代码之前,会在堆内存中创建一个全局对象:Global Object(GO).该对象所有的作用域(scope)都可以访问;里面会包含Date,Array,String,Number,setTimeout,setInterval等等;其中还有一个Window属性指向自己。

认识VO对象(Variable Object)

每一个执行上下文会关联一个VO(Variable Object,变量对象),变量和函数声明会被添加到这个VO对象中。

函数如何被执行?

在执行的过程中执行到一个函数时,就会根据函数体创建一个函数执行上下文,并且压入到EC Stack中 因为每个执行上下文都会关联到一个VO,那么函数执行上下文关联的VO就相当于创建一个AO对象(Activation Object);这个AO对象会使用arguments作为初始化,并且初始化是传入的参数;这个AO对象会作为执行上下文的VO来存放变量的初始化。