任何一个函数都有一个原型的属性。
在js中任何一个函数都有一个prototype属性,原型(prototype)就是函数的一个属性,它指向一个对象。
原型的作用其实就是为类(函数)提供了一个【公共区域】,在这个公共区域中声明的属性和方法能够被所有通过这个类所创建的对象所访问到。减少内存消耗。
ps:在原型中声明的属性和方法,有时也被称为是类的公有属性和公有方法
原型是一个对象,在原型中通常拥有两个属性:
(1)构造器constructor:该属性指向了这个类(函数)本身
(2)原型指向__proto__:该属性指向原型本身,提供给通过类创建的对象使用。
原型分为隐形原型和显示原型
所有引用类型(函数,数组,对象)的实例对象都拥有__proto__属性(隐式原型)