一 原型(prototype)
每个函数都有prototype属性,称之为原型(显示原型),这个属性的值是一个对象,因此原型也称为原型对象
给其他对象提供共享属性的对象
作用:
存放一些属性和方法
在JS中实现继承
是一个显示属性
隐式原型
隐式原型,每个JavaScript对象都会有一个特殊内置属性__proto__(非标准属性,不建议 生产中使用),这个属性指向创建这个对象的原型对象。
二 原型链
原型链的顶部是null,表示原型链的终点。
作用
原型可以放一些属性和方法,共享给其他实例对象使用
原型可以做继承
原型链:对象都有__proto__属性,这个属性指向它的原型对象,原型对象也是对象,也有__proto__属性,指向原型对象的原型对象,这样一层层的链式结构称为原型链,最顶层找不到则返回 null
JS的设计思路是,原型对象的所有属性和方法,都能被实例对象共享。也就是说属性和方法定义在原型上,那么所有实例对象都能共享,不仅能节省内存,还体现了实例对象之间的联系。
隐式原型和显示原型
在 JavaScript中,每个对象都有 隐式原型__proto__ 和 显示原型prototype 属性