什么是原型、原型链?

121 阅读1分钟

---转载·不乐意看实现原理,可最下面看总结---

原型:每个函数\color{red}{函数}都有prototype属性,称之为原型;因为这个属性的值是对象\color{green}{对象},也称为原型对象。

1.作用:

(1).可以存放一些属性和方法

(2).在JavaScript中实现继承

2.原型及原型链的实现原理

(1)原型
例如:
    const arr =new Array(1,2,3)
    arr.reverse()//翻转
    arr.sort()//排序
    console.log(arr)//浏览器打开即可查看到prototype及其身上的属性

构造函数Array身上挂载了prototype原型,所以使用构造函数创建的实例对象arr也拥有了prototype原型,arr也可以使用prototype原型身上的方法。

image-20230510112414767.png

查看Array.prototype有那些方法及说明:

developer.mozilla.org/zh-CN/docs/…

·为什么创建的实例对象可以使用prototype原型?

_proto_:每个对象都有__proto__属性

作用:这个属性指向它的原型对像

image-20230510112945522.png

    console.log(arr.__porto__===Array.prototype);//true两者等价的
(2)原型链

Snipaste_2023-05-10_11-33-50.png

总结:

1.原型(prototype):函数\color{red}{函数}都有prototype属性,称之为原型 原型可以放一些属性和方法,共享给实例对象 原型可以做继承

2.原型链:对象\color{red}{对象}都有__proto__属性,该属性指向它的原型对象(prototype);原型对象也是对象,凡是对象都有__proto__属性,指向原型对象的原型对象,这样一层一层形成的链式结构称之为原型链\color{red}{链式结构称之为原型链},最顶层找不到则返回null。