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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SSM整合支付宝支付功能

    SSM整合支付宝支付功能

    2021年9月26日
    51
  • Shell脚本基础详解

    Shell脚本基础详解

    2021年6月4日
    124
  • django详解_java cookie

    django详解_java cookie前言cookie:在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登录

    2022年8月7日
    6
  • 旅游信息管理系统的设计与实现

    旅游信息管理系统的设计与实现开发环境:Eclipse/MyEclipse、Tomcat8、Jdk1.8数据库:MySQL适用于:课程设计,毕业设计,学习等等系统介绍

    2022年5月29日
    28
  • Java—重写与重载的区别

    Java—重写与重载的区别Java—重写与重载的区别这几周开始看Java的知识,发现有一个有趣的现象就是,前两天刚看过的知识点,过一天又忘掉了。而且很多东西堆在脑子里像浆糊一样。所以边学习边总结是很重要的,今天想写一篇关于重写和重载的博客,为什么?因为面试会问啊,这是基础中比较重要的地方,但我百度了几篇博客之后发现写的都差强人意,各有缺点,但是!!访问量都特别高,所以我决定自己好好总结一篇自己的博客,也算是给自己的学习…

    2025年10月17日
    3
  • s3c2440裸机开发环境的搭建

    s3c2440裸机开发环境的搭建s3c2440裸机开发环境的搭建用于arm裸机程序开发的IDE基本有MDK,IAR,还有ADS,也可以选择在linux下安装交叉编译链来进行开发。笔者选择的是MDK作为我进行开发的IDE。下面介绍笔者搭建开发环境的过程。笔者主要参考了两篇博文来进行开发环境的搭建的,分别是:http://blog.csdn.net/mybelief321/article/details/8910528

    2022年5月20日
    43

发表回复

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

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