一个class的问题
老师您好,问一个class问题,是在阮一峰老师的书中提到的关于es6class和es5继承的表述:es5的继承实质是先创造子类的实例对象this,然后再将父类的方法添加到this上面。es6的继承机制完全不同,实质是先创造父类的实例对象this(所以必须先调用super方法),然后再用子类的构造函数修改this。 对于这段话我不是很理解,尤其是对es5的表述,老师能根据实例介绍一下吗?
0
收起
正在回答 回答被采纳积分+1
3回答
好帮手慕码
2019-05-23 13:46:35
同学你好!
ES5的继承机制简单来说就是:实质是先创造子类的实例对象this,然后再将父类的方法添加到this上面(Parent.apply(this))
通过子类的原型对象指向父类实例的方式来实现继承,那我们不难发现原型链的形成是真正是靠__proto_ 而非prototype,子类的实例可以访问父类原型上的方法,是因为子类实例通过 _proto与父类的原型对象有连接
代码可参考:
//先来个父类,带些属性 function Super(){ this.flag = true; } //为了提高复用性,方法绑定在父类原型属性上 Super.prototype.getFlag = function(){ return this.flag; } //来个子类 function Sub(){ this.subFlag = false; } //实现继承 Sub.prototype = new Super; //给子类添加子类特有的方法,注意顺序要在继承之后 Sub.prototype.getSubFlag = function(){ return this.subFlag; } //构造实例 var es5 = new Sub;
同学可以试着理解一下~
如果帮助到了你 欢迎采纳 祝学习愉快~
一路电光带火花
2019-05-23 11:20:07
热门框架Vue开发WebApp 18版
- 参与学习 人
- 提交作业 209 份
- 解答问题 3299 个
本路径是通过ES6基础知识、运用Zepto、Swiper、fullPag等移动端常用工具包、以及当下流行框架Vue,结合多个实战案例,还原真实开发场景,最终实现手机端购物商城网页开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星