一、什么是共用属性(prototype)
每一个Object类型都有一个共用属性,就是说就算这两个不是同一个对象,但是他们也有一个共同的属性。
举例如下:
如图就很好的说明了虽然o1和o2不是同一个对象,但是他们的toString方法是相同的,原因是toString方法来自同一个共用属性中的。
除了Object类型其他类型都有属于自己的私有的共用属性。
举例Number类型如下:
如上图:Number类型中就有一个属于Number类型的共用属性。
但是它的共用属性中还有一个是跟对象也一起共用的属性。
其他Sting类型、Boolean类型等等都是跟Number类型相似的,也就是说除了它自己类型本身的共用属性中还有一个是跟对象也一起共用的属性。
二、_ proto _ 和prototype的区别
1.对象有属性__proto__
,指向该对象的构造函数的原型对象。
2.方法除了有属性__proto__
,还有属性prototype,prototype指向该方法的原型对象。
prototype
是为了防止属性被垃圾回收掉,_proto_
是对prototype的引用。