最近在收集面试题的时候发现了一些考查prototype的题目,然而很多都是一知半解的看完了,今天就深入理解一下prototype和__proto__ 。

首先要明确的是:

  1. 在JS里,万物皆对象。方法(Function)是对象,方法的原型(Function.prototype)是对象。因此,它们都会具有对象共有的特点。即:对象具有属性__proto__,可称为隐式原型,一个对象的隐式原型指向构造该对象的构造函数的原型,这也保证了实例能够访问在构造函数原型中定义的属性和方法。
    如: