原型
::为对象添加属性和方法。::
在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