Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

简述执行上下文和执行栈

执行上下文

  • 全局执行上下文:默认的上下文,任何不在函数内部的代码都在全局上下文里面。它会执行两件事情:创建一个全局的的 window 对象,并且设置 this 为这个全局对象。一个程序只有一个全局对象。
  • 函数执行上下文:每当一个函数被调用时,就会为该函数创建一个新的上下文,每个函数都有自己的上下文,不过是在被函数调用的时候创建的。函数上下文可以有任意多个,每当一个新的执行上下文被创建,他会按照定义的顺序执行一系列的步骤。
  • Eval 函数执行上下文:执行在 eval 函数内部的代码有他自己的执行上下文。

执行栈

执行栈就是一个调用栈,是一个后进先出数据结构的栈,用来存储代码运行时创建的执行上下文。

this 绑定

全局执行上下文中,this 指向全局对象。

函数执行上下文中,this 取决于函数是如何被调用的。如果他被一个引用对象调用,那么 this 会设置成那个对象,否则是全局对象。