欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

JavaScript] 理解构造函数、实例和原型之间的关系了解构造函数、实例和原型之间的关系

最编程 2024-07-17 18:58:08
...

原型:

原型本质是一个对象,理解为 JavaScript 自动帮我们添加的,只要是构造函数,系统会默认的为构造函数关联一个对象,这个对象就称为构造函数的原型,写在原型中的成员,可以被构造函数所创建的实例调用。
原型是 JavaScript 自动帮我们在定义构造函数的时候添加的。
所有构造函数的实例,共享一个原型,原型上一般是挂载函数。
图示理解:
在这里插入图片描述

原型 proto

Javascript 规定,每一个(构造)函数都有一个 prototype 属性,指向另一个对象。这个对象的所有属性和方法,都会被构造函数的实例继承。这也就意味着,我们可以把所有对象实例需要共享的属性和方法直接定义在 prototype 对象上,以便让同一类型的对象共享方法或其它成员。

实例的 __proto__(对象原型)属性 等于 构造函数的 prototype

构造函数、实例、原型三者之间的关系

构造函数(constructor):构造函数就是一个函数,配合new可以新建对象。

实例:通过构造函数实例化出来的对象我们把它叫做构造函数的实例。一个构造函数可以有很多实例。

原型:每一个构造函数都有一个属性prototype,函数的prototype属性值就是原型。通过构造函数创建出来的实例能够直接使用原型上的属性和方法。
在这里插入图片描述

所有的构造函数都是Function的实例

Array 和 Person 和 Date 等都是 Function的实例

在这里插入图片描述

Function 和 Object的关系

有人说 JavaScript 是作者花了7天时间写出来的产物 - 不完美

console.log(Object.prototype===Function.prototype.__proto__)

在这里插入图片描述

Object的顶端呢?

接近顶峰了

 console.log(Object.prototype.__proto__ === null);

在这里插入图片描述希望以上内容可以对你有所帮助!

推荐阅读