javascript作用域链

javascript作用域链定义作用域的集合就是作用域链 1 函数在执行的过程中 先从自己内部寻找变量 2 如果找不到 再从创建当前函数所在的作用域去找 从此往上 也就是向上一级找 当在作用域内访问变量 方法的时候 会找离自己最近的那个变量 方法 就近原则

作用域链

JavaScript中,函数也是对象,实际上,JavaScript里一切都是对象。函数对象和其它对象一样,拥有可以通过代码访问的属性和一系列仅供JavaScript引擎访问的内部属性。其中一个内部属性是[[Scope]],该内部属性包含了函数被创建的作用域中对象的集合,这个集合被称为函数的作用域链,它决定了哪些数据能被函数访问。

作用域链决定了哪些数据能被函数访问。当一个函数创建后,它的作用域链会被创建此函数的作用域中可访问的数据对象填充。

function fn(){ var a=10; function fn1(){ var b=20; alert(a) //10 function fn2(){ alert(b) //20 alert(a) //10 子集可以跨级访问父级 } fn2() } fn1() } fn() alert(b) // 报错 

从作用域链的结构可以看出,函数在执行的过程中,先从自己内部寻找变量,如果找不到,再从创建当前函数所在的作用域去找,从此往上,也就是向上一级找,直到找到全局作用域还是没找到。

执行顺序

var a=10; function fn(){ var a=20; console.log(a) //20 } fn() 

总结

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232064.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ssdp协议 upnp_SSDP协议编程 upnp设备查找方法[通俗易懂]

    ssdp协议 upnp_SSDP协议编程 upnp设备查找方法[通俗易懂]SSDP协议编程upnp设备查找方法SSDP协议编程upnp设备查找方法[cpp]viewplaincopyintssdp_discovery(){structsockaddr_inaddrin;structtimevalrtime;intnewsock;intret;charbuf[1024];inti=0;intyes=1;rtime.tv_sec=2;rtime.tv_usec…

    2022年10月11日
    1
  • Golang语言快速上手到综合实战笔记(Go语言、Beego框架、高并发聊天室、爬虫)

    Golang语言快速上手到综合实战笔记(Go语言、Beego框架、高并发聊天室、爬虫)

    2022年2月19日
    45
  • 框架梳理|企业大数据管理之道「建议收藏」

    框架梳理|企业大数据管理之道「建议收藏」大数据管理——企业转型升级与竞争力重塑之道》一书,从大数据驱动决策、大数据优化管理、大数据智慧营销、大数据发现创新、大数据推动转型、大数据保障安全六个维度全面分析了大数据对传统企业的应用价值,提供可借鉴的案例和深度有格局的思考。本文主要讲述的就是对于这本书的个人看法。

    2022年5月1日
    61
  • 理解的英文(言语理解)

    开篇明义,dropout是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃。注意是暂时,对于随机梯度下降来说,由于是随机丢弃,故而每一个mini-batch都在训练不同的网络。dropout是CNN中防止过拟合提高效果的一个大杀器,但对于其为何有效,却众说纷纭。在下读到两篇代表性的论文,代表两种不同的观点,特此分享给大家。

    2022年4月10日
    46
  • 计算机网络谢希仁第八版 课后答案第七版课后答案

    计算机网络谢希仁第八版 课后答案第七版课后答案谢希仁计算机网络第七版课后答案第一章概述1-01计算机网络向用户可以提供那些服务?答:连通性和共享1-02简述分组交换的要点。答:(1)报文分组,加首部(2)经路由器储存转发(3)在目的地合并1-03试从多个方面比较电路交换、报文交换和分组交换的主要优缺点。答:(1)电路交换:端对端通信质量因约定了通信资源获得可靠保障,对连续传送大量数据效率高。(2)报文交换:无须预约传输带…

    2022年6月17日
    25
  • react项目实战教程(react项目实战)

    文章目录项目实战前的准备工作项目实战一.搭建项目的基本页面及外层路由1-1配置基本页面1-2配置路由1-3需要最外层去渲染路由视图1-4需要配置内层App路由1-5路由的懒加载二.利用Antd实现组件2-1使用Antd的Layout进行布局2-2可以设计个Logo2-3实现左侧的菜单展示2-4实现左侧的小图标2-5实现点击菜单切换总结需要下载的组件项目实战前的准备工作React基础…

    2022年4月12日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号