js作用域链和原型链

作用域链

如果要理解作用域链就要先理解作用域,所以要先明白作用域
一、作用域

	作用域就是变量与函数的可访问范围
	即作用域控制着变量与函数的可见性和生命周期

二、作用域分为全局作用域和局部作用域

全局作用域:代码在程序的任何地方都能被访问,window 对象的内置属性都拥有全局作用域。
局部作用域:在固定的代码片段才能被访问。函数内部的声明式函数也是局部函数

三、[[scope]]

[[scope]]: 每个JavaScript函数都是一个对象,对象中有些属性我们可以访问,但有些不可以,这些属性仅供JavaScript引擎存取,
[[scope]]就是其中一个,[[scope]]指的是我们所说的作用域,其中存储了运行期上下文集合;

四、作用域链

作用域链: [[scope]]中所存储的执行期上下文对象集合,这个集合呈链式链接,我们把这种链式链接叫做作用域链;
逐层衍生、逐层嵌套的作用域拥有以下的特性:
1.外层作用域无法调用内层作用域的变量和常量
2.代码执行需要时,优先引用当前所在执行环境中的变量和常量
3.直至追溯到最外层作用域( window 或 global)仍未定义的引用,即为 not defined.
原型链

JavaScript的所有对象中都包含了一个 __proto__内部属性,这个属性所对应的就是自身的原型,实例与原型之间的链条形成的链式结构叫做原型链

1.prototype

prototype是函数独有的属性,它从一个函数指向另一个对象,代表这个对象是这个函数的原型对象,这个对象也是当前函数所创

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值