https://blog.csdn.net/cc18868876837/article/details/81211729
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解) https://blog.csdn.net/cc18868876837/article/details/81211729
constructor ---- 构造函数 构造器 建造者,制造者,建造商 __proto__ ---- 原型链 prototype ---- 原型;雏形;最初形态
对象有: constructor ,__proto__ 函数有: prototype 函数是特殊的对象,所以函数有 prototype, constructor,__proto__
function Foo(){} let f1=new Foo();
函数创建的对象.__proto__ === 该函数.prototype, 该函数.prototype.constructor===该函数 ==> f1.__proto__===Foo.prototype Foo.prototype.constructo===Foo
constructor: 对象特有,从一个对象指向一个函数,指向该对象的构造函数
__proto__: 对象特有,从一个对象指向一个对象 a.__proto__ 表示a的父对象 a.__proto__.__proto__ 表示a的爷爷对象 ... 当访问一个对象的属性时候,如果此对象不存在,则往父对象找,如果还不存在,往爷爷对象找...
prototype: 函数特有,从一个函数指向一个对象,函数的原型对象 Foo.prototype==f1.__proto__==Object{constructor:function Foo() ... }
1. f1 ==> Object{ } 2. f1.__proto__ ==> Object{ constructor: Foo() } 3. f1.constructor ==> Foo()
1. Foo ==> function Foo() 2. Foo.prototype ==> Object{ constructor: Foo() }