帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)

帮你彻底搞懂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() }

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值