前言
现在写vue的时候,基本上不会遇到prototype,__proto__,constructor这三兄弟。但是在看vue源码的时候,还是会遇到。那么遇到了,就要清楚,了解他们。
prototype
这个属性是函数特有的,他是从一个函数指向一个对象。他的含义是:函数的原型对象。他的作用是,所有的实例和属性所共享的方法。
__proto__属性
__proto__是对象特有的。他的作用就是,当他本身不存在属性或者方法的时候,会沿着链条去找(父级),一直找,直到找到终点,null。
constructor
他是对象特有的,他是从一个对象指向一个函数,含义就是指向该对象的构造函数。所有的函数最终指向Function。
结束语
当Array.prototype.shift === new Array().__proto__.shift这个是恒等于的,因为这个是prototype的作用所导致的。