正在回答 回答被采纳积分+1
@睿扣同学你好,问题解答如下:
1.理解类与类上面的原型对象
类A继承类B,那么对于类A来说,类B就是它的父类。且相对类A来说的,类B的原型就叫做父类原型。其实这个问题就是理解类与类的原型的区别,用之前对象举例:
定义一个对象obj,在obj上面定义一个属性a ,那么a和obj的区别是什么?就是a是obj上面的一个属性哦。只不过a比较特殊,是一个对象,在它上面也可以定义属性和方法。即在obj下面直接定义的属性就是obj自身的属性,如a和b都是obj自身的属性。而a下面也有自己的属性c。
理解了上面,也就理解了原型和类的关系,其实原型就是类上面的一个属性,只不过这个属性它是一个对象,也可以定义属性和方法。即prototype它是类上面的一个属性,prototype意思就是原型,所以我们叫它原型对象。
2.类的构造函数(constructor方法)中,通过this定义的属性,就是类上面的属性,而在类的prototype属性上面定义的属性,就是原型对象上面的属性。所以同学下面所说的是不对的,你在prototype属性上面定义了什么,才会有什么。不会包含类上面的属性和方法,就像上面的例子中,a的下面只有属性c,不会包含obj的属性a和属性b。
3.同学所说的继承,给同学举一个例子:
在es6中,类同时有prototype属性和__proto__属性。如果是类A继承类B,那么类A__proto__属性就是继承父类B上面的所有属性和方法,而类A的prototype属性,只继承父类B的prototype属性上面的属性和方法。也就是如下关系:
A.__proto__ === B
A.prototype.__proto__ ===B.prototype
祝学习愉快~
父类和父类原型是个相对的概念, 一个类继承了另外一个类(比如利用extends关键字进行继承的), 这个另外一个类就是父类, 因为前者延续了后者实现的部分, 就好像儿子延续父亲的血脉一样, 所以把它称之为父类。
而父类原型,就是这个父类上的prototype属性定义的对象。
相似问题
登录后可查看更多问答,登录/注册
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星