如何全面理解JS中的prototype、__proto__与constructor之间的关系?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2435个文字,预计阅读时间需要10分钟。
提示:不要排斥,静下心来,认真读完,你就懂了!(可以先看下面的总结部分,再回过头来完整阅读)
1. 前言作为一名前端工程师,必须掌握JS中的`prototype`、`__proto__`与`constructor`。
总结:- `prototype`:是函数的一个属性,用于存储所有实例共享的属性和方法。- `__proto__`:是对象的一个内置属性,指向其构造函数的`prototype`。- `constructor`:是对象的一个属性,指向创建该对象的构造函数。
接下来,我们将详细探讨这三个概念。
提示:不要排斥,静下心来,认真读完,你就搞懂了!(可以先看一下最后的总结部分再回过头来完整看完)
1. 前言
作为一名前端工程师,必须搞懂JS中的prototype、__proto__与constructor属性,相信很多初学者对这些属性存在许多困惑,容易把它们混淆,本文旨在帮助大家理清它们之间的关系并彻底搞懂它们。这里说明一点,__proto__属性的两边是各由两个下划线构成(这里为了方便大家看清,在两下划线之间加入了一个空格:_ _proto_ _),实际上,该属性在ES标准定义中的名字应该是[[Prototype]],具体实现是由浏览器代理自己实现,谷歌浏览器的实现就是将[[Prototype]]命名为__proto__,大家清楚这个标准定义与具体实现的区别即可(名字有所差异,功能是一样的)。
本文共计2435个文字,预计阅读时间需要10分钟。
提示:不要排斥,静下心来,认真读完,你就懂了!(可以先看下面的总结部分,再回过头来完整阅读)
1. 前言作为一名前端工程师,必须掌握JS中的`prototype`、`__proto__`与`constructor`。
总结:- `prototype`:是函数的一个属性,用于存储所有实例共享的属性和方法。- `__proto__`:是对象的一个内置属性,指向其构造函数的`prototype`。- `constructor`:是对象的一个属性,指向创建该对象的构造函数。
接下来,我们将详细探讨这三个概念。
提示:不要排斥,静下心来,认真读完,你就搞懂了!(可以先看一下最后的总结部分再回过头来完整看完)
1. 前言
作为一名前端工程师,必须搞懂JS中的prototype、__proto__与constructor属性,相信很多初学者对这些属性存在许多困惑,容易把它们混淆,本文旨在帮助大家理清它们之间的关系并彻底搞懂它们。这里说明一点,__proto__属性的两边是各由两个下划线构成(这里为了方便大家看清,在两下划线之间加入了一个空格:_ _proto_ _),实际上,该属性在ES标准定义中的名字应该是[[Prototype]],具体实现是由浏览器代理自己实现,谷歌浏览器的实现就是将[[Prototype]]命名为__proto__,大家清楚这个标准定义与具体实现的区别即可(名字有所差异,功能是一样的)。

