type
status
date
slug
summary
tags
category
icon
password
先上结论
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2Fc466f1d4-a794-4e9f-bdf9-13b19f8600bc%2F3def33d3-1d2d-4aaf-a89c-8f1183da30f9%2FUntitled.png?table=block&id=e6ecc35b-9d10-49e7-9179-413e4416c643)
1 构造函数到原型
构造函数.prototype会变成实例的共同属性 prototype是函数才会有的属性
这个对象正是调用该构造函数而创建的实例的原型
2 __proto__
这是每一个JavaScript对象(除了 null )都具有的一个属性,叫__proto__,这个属性会指向该对象的原型。
实例其实就是对象
实例的原型!!! 构造函数可以通过prototype访问到
既然实例对象和构造函数都可以指向原型,那么原型是否有属性指向构造函数或者实例呢?
答:指向实例倒是没有,因为有多个实例,
但是原型指向构造函数倒是有的,这就要讲到第三个属性:constructor,每个原型都有一个 constructor 属性指向关联的构造函数。
综上
实例与原型
当读取实例的属性时,如果找不到,就会查找与对象关联的原型中的属性,如果还查不到,就去找原型的原型,一直找到最顶层为止。
原型的原型
在前面,我们已经讲了原型也是一个对象,既然是对象,我们就可以用最原始的方式创建它,那就是
实例的原型也就是对象的原型,对象的原型是构造函数的prototype 构造函数也就是Object()
那 Object.prototype 的原型呢?
null,我们可以打印:
- 作者:MasterYe
- 链接:https://www.masterye.xyz//article/jsFace-1
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。