JavaScript原型链与作用域链

Posted wangshouren

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript原型链与作用域链相关的知识,希望对你有一定的参考价值。

layout: ‘page‘
title: ‘原型链与作用域链‘
date: 2019-09-30 15:38:38
tags: javascript
categories: JAVASCRIPT

 

 

原型

  • 所有函数自带一个属性:prototype,属性值是一个对象,存储供实例调用的公共方法

  • 这个对象自带属性constructor,属性值是函数本身

  • 每个对象自带_ _proto__的属性,这个属性指向当前实例所属类的prototype(如果不能确定他是谁的实例,都是Object的实例)

原型链

如果当前对象没有这个属性,会向它_ _proto__这个属性指向的所属类上的prototype上查找,如果也没有,会向所属类上的prototype上的proto上查找...一直找到Object为止。

作用域链

  • 如果当前作用域中没有这个私有变量,会向上级作用域查找,一直找到window为止,如果window也没有,则把变量添加到window属性中。

  • 函数的上级作用域只和他在哪里创建的有关

以上是关于JavaScript原型链与作用域链的主要内容,如果未能解决你的问题,请参考以下文章

JS详细图解作用域链与闭包

在chrome开发者工具中观察函数调用栈作用域链与闭包

作用域链与闭包

JavaScript原型和原型链

JavaScript | 闭包

我之理解js作用域,作用域链与变量提升