帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
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() }