原型与原型链

19 阅读1分钟

原型

原型本质就是一个对象无论何时,只要你创建了一个函数function那么就会有其prototype指向其原型对象,如下声明了一个Person函数,然后在给其原型对象上添加一个a属性,输出一下看看他的原型对象上是否添加了a属性,结果发现原型对象上有a属性,所有的原型都有一个construstor属性,这个construstor指向与其关联的函数。每个通过构造函数创建的实例都有一个属性__proto__,它指向的也是构造函数的原型对象。

function Person (x){
     this.x = 1
}
Person.protype.a = 2
const person = new Person()
console.log(Person.prototype);
console.log(Person.prototype.constructor ==Person);
console.log(person.__proto__);

image.png

原型链

原型链的理解就是如果你在当前原型上没有找到对应的属性或方法,那么他就会向上级找,一级一级的查找,直到找打Object层为止,找不到就赶回undefined

function Person (x){
   this.x = 1
}
const person = new Person(1)
Person.prototype.a = 2
Object.prototype.b = 3
console.log(person.a);
console.log(person.b);
console.log(person.c);

image.png

以上就是我对原型与原型链的理解