前言
开篇先记住以下两点,再渐渐通过实例理解
1、__proto__
和constructor
属性是对象所独有的;
2、prototype
属性是函数所独有的。
但是由于 JS
中函数也是一种对象,所以函数也拥有 __proto__
和 constructor
属性
一、函数的原型对象
我们创建函数 A
的同时, 浏览器会在内存中创建一个对象 B
,A
函数默认会有一个 prototype
属性。指向了对象 B
( 即:prototype
的属性的值是对象 B
)。
这个对象 B
就是函数 A
的原型对象,简称函数的原型。
原型对象 B
默认会有一个属性 constructor
指向了函数 A
(即 constructor
属性的值是函数 A
)。 原型对象默认只有属性constructor
。其他都是从 Object
继承而来。