原型和原型链,草稿篇

94 阅读1分钟

一 原型(prototype)

每个函数都有prototype属性,称之为原型(显示原型),这个属性的值是一个对象,因此原型也称为原型对象

给其他对象提供共享属性的对象

作用:

存放一些属性和方法

在JS中实现继承

是一个显示属性

隐式原型

隐式原型,每个JavaScript对象都会有一个特殊内置属性__proto__(非标准属性,不建议 生产中使用),这个属性指向创建这个对象的原型对象。

二 原型链

原型链的顶部是null,表示原型链的终点。

作用

原型可以放一些属性和方法,共享给其他实例对象使用

原型可以做继承

原型链:对象都有__proto__属性,这个属性指向它的原型对象,原型对象也是对象,也有__proto__属性,指向原型对象的原型对象,这样一层层的链式结构称为原型链,最顶层找不到则返回 null

JS的设计思路是,原型对象的所有属性和方法,都能被实例对象共享。也就是说属性和方法定义在原型上,那么所有实例对象都能共享,不仅能节省内存,还体现了实例对象之间的联系。

隐式原型和显示原型

在 JavaScript中,每个对象都有 隐式原型__proto__ 和 显示原型prototype 属性