JS中构造函数、实例对象和原型对象三者之间的关系

1、首先需要明白一个知识点:一个需要共享并且通过实例对象调用的方法,是在构造函数的原型对象中的。(实例对象原型__proto__指向构造函数的原型,即prototype)

    

通过查看join方法得到,join是在构造函数的原型对象中的。

2、进入正题,开始解释:

(1)实例对象通过构造函数进行创建,原型对象是有了构造函数就会产生的。

(2)构造函数中的属性通过结构(dir)查看时不在构造函数中而是在实例对象中的,构造函数里有个原型对象(prototype),原型对象里有个构造器(constructor),指向构造函数。下图查看构造函数的结构。

(3)添加代码查看实例对象的结构(上图注释放掉)

(4)__proto__和prototype的指向是相同的,原型对象中的方法可以被实例对象所共享。

实例对象中没有方法,但是可以调用,是因为实例对象的原型__proto__指向了构造函数的原型对象(桥梁),所以可以调用。

(5)方法的调用原来是可以通过per.__proto__.eat()来调用,但是因为__proto__是给浏览器看的,并不是标准的,所以用per.eat()来调用。

 

以上属于个人学习总结,有误之处,还请指正。

  • 27
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值