构造继承中父对象和子对象关系的构建

构造继承中父对象和子对象关系的构建

老师好,没太弄明白6-5里的第一个案例,为什么child函数声明里,用this.pObj=parents就构建了child和parents的父子对象的关系呢

 我比较好奇后面sayC里调用this.name时的具体操作过程,视频里说的name是继承自父对象,那是不是这样:这里this指向child,而child.name是没有的,child里有name属性的只有child的pObj这个对象,那是不是说调用的时候直接用child.pObj.name了?也就是调用了child对象中的对象的name属性?但这个pObj对象也不是child的父对象啊?没太明白

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,是可以这样理解的哦。如果帮助到了你,欢迎采纳~祝学习愉快~

好帮手慕言 2019-09-05 19:32:02

同学你好,同学理解的是可以的,但是有一点误差,

http://img1.sycdn.imooc.com//climg/5d70f16b000161b906830158.jpg

红线处文字是针对call方法解释的。而视频中代码可以解释为:

http://img1.sycdn.imooc.com//climg/5d70f1930001544602880049.jpg

将父类添加在子类的属性上pObj,继承了父类中所有的方法和属性,然后再调用pObj,也就相当于调用了父类。

如果帮助到了你,欢迎采纳~祝学习愉快~

  • 提问者 且听风吟720 #1
    老师,那可不可以这么理解,原型继承里,子级缺少的属性都是沿着原型链从父级那里借用来,也就是用的属性如果是子级没有的,用的是父级的 而构造继承不一样,子级缺少方法就从父级那里调用,但是实际上子级在把缺少的属性和方法添加到自己身上,也就是用的自己的方法,只不过这些方法和属性是通过调用父级得来的
    2019-09-05 19:59:32
  • 提问者 且听风吟720 #2
    简单点就是说,在使用自身没有的方法或属性时,原型继承用的是父级的,构造继承用的是自己的
    2019-09-05 20:04:10
提问者 且听风吟720 2019-09-05 16:40:22

似乎理解了,是不是类似于call和apply方法,先用child的pObj属性接收parents这个函数,然后像其中传入参数,但是传参时,还传入了child的实例c这个对象,回调parents函数时,函数里的this都是c,c就获得了parents里的所有属性和方法

那也就是说,这里的this.pObj = parents; this.pObj(name);两句,相当于parents.call(this,name)这一句代码咯?

麻烦老师帮忙看看,谢谢啦!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师