关于父类和父类原型的区别!

关于父类和父类原型的区别!

父类和父类原型指的是什么,很模糊

正在回答 回答被采纳积分+1

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

3回答
好帮手慕夭夭 2020-09-18 10:20:47

@睿扣同学你好,问题解答如下:

1.理解类与类上面的原型对象

类A继承类B,那么对于类A来说,类B就是它的父类。且相对类A来说的,类B的原型就叫做父类原型。其实这个问题就是理解类与类的原型的区别,用之前对象举例:

定义一个对象obj,在obj上面定义一个属性a ,那么a和obj的区别是什么?就是a是obj上面的一个属性哦。只不过a比较特殊,是一个对象,在它上面也可以定义属性和方法。即在obj下面直接定义的属性就是obj自身的属性,如a和b都是obj自身的属性。而a下面也有自己的属性c。

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

理解了上面,也就理解了原型和类的关系,其实原型就是类上面的一个属性,只不过这个属性它是一个对象,也可以定义属性和方法。即prototype它是类上面的一个属性,prototype意思就是原型,所以我们叫它原型对象。

2.类的构造函数(constructor方法)中,通过this定义的属性,就是类上面的属性,而在类的prototype属性上面定义的属性,就是原型对象上面的属性。所以同学下面所说的是不对的,你在prototype属性上面定义了什么,才会有什么。不会包含类上面的属性和方法,就像上面的例子中,a的下面只有属性c,不会包含obj的属性a和属性b。

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

3.同学所说的继承,给同学举一个例子:

在es6中,类同时有prototype属性和__proto__属性。如果是类A继承类B,那么类A__proto__属性就是继承父类B上面的所有属性和方法,而类A的prototype属性,只继承父类B的prototype属性上面的属性和方法。也就是如下关系:

A.__proto__ === B

A.prototype.__proto__ ===B.prototype

祝学习愉快~

  • hyperse #1
    老师回答的好详细,谢谢老师!
    2020-09-22 01:03:09
慕移动3569406 2020-05-09 08:11:13

父类和父类原型是个相对的概念, 一个类继承了另外一个类(比如利用extends关键字进行继承的), 这个另外一个类就是父类, 因为前者延续了后者实现的部分, 就好像儿子延续父亲的血脉一样, 所以把它称之为父类。

而父类原型,就是这个父类上的prototype属性定义的对象。


好帮手慕夭夭 2020-04-14 09:43:21

同学你好,父类就是这个类本身,父类原型指的是这个类上的一个属性,即prototype 。prototype 就是原型的意思。

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

  • rayyli #1
    老师,请问父类本身与父类原型最本质区别是什么?父类原型中的属性和方法是不是父类本身的属性和方法,即父类的prototype属性中是不是包含了父类的所有属性和方法?这个prototype属性,我记得前面的课程的讲解的意思是这个父类继承其“祖先”了类的属性和方法。
    2020-09-17 23:53:33
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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