js继承之构造函数继承

        最近在看js红宝书,学到了继承这一章节,看到了下图这段代码根据自己理解不明白为什么两次实例的colors值不一样

        又是自己画图又是查找资料看别人如何理解的,今天才按自己的理解搞明白为啥。可能我的理解也是有偏差错误的,希望佬可以指正。参考了这篇博客明白了构造函数,实例,原型啊等等的概念。然后根据自己理解把这段代码的关系图画了下来。5分钟带你搞懂 构造函数、原型对象、实例对象、原型、原型链_简述一下对原型,构造函数以及实例的理解-CSDN博客

 解释:

        首先代码中有一个SuperType构造函数,它有一个colors属性;然后SubType构造函数调用了call方法改变了this的指向,其中this指向SuperType构造函数,等同于SuperType构造函数里面有的属性SubType构造函数中都有,且值一样。然后根据SubType构造函数实例化了一个instance1对象,new的这个过程呢根据参考的博客理解,感觉也相当于这个实例对象中加了SubType构造函数里面的所有属性。之后对象1改变了colors的值,所以对象1的colors属性值改变了。

        再然后有根据构造方法实例化出一个新的对象2,所以对象2也在自身中继承了SubType的属性,所以对象2中的colors值依然是原值。

okk~ 我目前就是这么理解的,我发现通过画图可以很好理解难懂的内容。这个知识点我不知道自己这样的理解是否正确,希望大佬们可以指正错误!!!

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值