美文网首页
理解作用域链

理解作用域链

作者: 树袋熊熊 | 来源:发表于2018-02-24 14:29 被阅读0次

JavaScript代码在执行的过程中,需要依赖其执行上下文(Execution Context), 当JavaScript代码被浏览器载入后,默认最先进入一个全局执行上下文,当在全局上下文中调用执行一个函数时,程序流就进入该被调用函数内,此时引擎就会为该函数创建一个新的执行上下文,并且将其压入到执行上下文堆栈的顶部。浏览器总是执行当前在堆栈顶部的上下文,一旦执行完毕,该上下文就会从堆栈顶部被弹出,然后,进入其下的上下文执行代码。这样,堆栈中的上下文就会被依次执行并且弹出堆栈,直到回到全局的上下文。

关于执行上下文(Execution Context) 可以将执行上下文,理解成为一个Object。它主要包含三个属性 变量对象,this 指向 和作用域链。

变量对象包括 函数的形参,函数声明和变量声明

作用域链(scope chain) 其实作用域链类似于原型链,像一条锁链将作用域关联起来,如果这个变量在当前作用域中没有,它会寻找父级的,直到最顶层,如果没有找到就会报错。

参考地址: https://leohxj.gitbooks.io/front-end-database/content/javascript-advance/scope-chain.html http://blog.rainy.im/2015/07/04/scope-chain-and-prototype-chain-in-js/

相关文章

  • javascript基础知识问答-作用域和闭包

    1.理解词法作用域和动态作用域2.理解JavaScript的作用域和作用域链3.理解JavaScript的执行上下...

  • 作用域&js分号的作用

    以上代码输出为: 原因:作用域:执行上下文中包含作用域链在理解作用域链之前,先介绍一下作用域,作用域可以理解为执行...

  • 作用域链的理解

    作用域链的理解 1可以把作用域链理解成是一个栈结构; 2每个作用域都有一个作用域对象用于保存在该作用域内创建的变量...

  • 5分钟入门闭包

    理解闭包前先要理解两个概念:作用域和作用域链。一、作用域分为: 全局作用域 函数作用域 var a = 100 f...

  • JS_0: 执行环境和作用域链

    JavaScript,目前对于执行环境和作用域链的理解 什么是作用域链? 要讲作用域链就得先讲执行环境。 每个函数...

  • 作用域/作用域链 闭包及其使用

    一、作用域、作用域链 作用域(scope) 浅显的理解: 作用域就是变量的可用范围(scope) 为什么要有作用域...

  • JavaScript 函数闭包(colsure)

    理解闭包,你首先必须理解JS的变量作用域,JavaScript作用域和作用域链。 ES6之前,变量的作用域分为全局...

  • 作用域链

    作用域链(scope chain) 理解: 作用域链决定了哪些数据能被函数访问。当一个函数创建后,它的作用域链会被...

  • 作用域链

    什么是作用域链? 在理解什么是作用域链之前,我们需要了解一个概念,那就是作用域。那么什么是作用域呢?简单的说,作用...

  • 深入理解闭包(五)——作用域、作用域链和执行上下文

    原文地址:深入理解闭包(五)——作用域、作用域链和执行上下文 作用域,作用域链,执行上下文三者之间有着密切的关系,...

网友评论

      本文标题:理解作用域链

      本文链接:https://www.haomeiwen.com/subject/rvdmwttx.html