JS 原型、原型链、继承

25 阅读1分钟

image.png

原型

::为对象添加属性和方法。::

在JS在,每个对象或者都有一个原型对象,它充当对象的模板,定义了对象的共享属性和方法。原型对象是构造函数创建的,可以将属性和方法添加到原型对象上实现。

原型链

::对象属性查找的层级关系链。::

原型链是一种机制,用于解决对象的继承关系。每个对象都有一个指向内部的原型链接,当我们访问一个对象的属性或者方法时,如果在当前对象找不到,JS引擎就会沿着原型链向上查找,直到找到或者为null为止,null为到达原型链的顶端。

继承

::子类获取并使用父类的属性和方法。::

继承是让对象拥有另一对象的属性或者方法的方式,JS的继承是基于原型的,通过将一个对象的原型设置为另一个对象的原型来实现。

function Person(name){
	this.name = name;
}

// 实例化
const person = new Person('Chen'); 
console.log(person.name) // Chen

Person.prototype.sayHi = ()=>`Hello ${this.name}`

// 函数的原型对象指向事例的 _proto_
// Person.protptype == person._proto_  // true

// 原型构造器,指向本身
// Person.prototype.constructor = Person // true
// Object.getPrototypeOf(person) === Person.prototype // true

Image.png