首页 > web前端 > js教程 > 正文

关于JavaScript类的继承(推荐)

怪我咯
发布: 2017-03-31 09:37:39
原创
1282人浏览过

其实最一开始学js的时候就看过继承的实现。当时只是去试着理解从书上看来的代码段而已。今天又重新思考了一下,感觉这是一个思维探索演进的结果。

继承,即复用。

如果抛开继承的固有思想,让b复用a的成员,最简单粗暴的做法, b=a;

那么,问题来了: 对b的任何改动,就是对a的改动(同一个object嘛)。

好吧,那就拷贝一份,浅拷贝不够安全的话,就用深拷贝。

问题:代码是复用了,但内存浪费了(不管是变量还是方法,在js中都是对象)。

不拷贝,只读不写,就可以用js的原型,b.proto = a。一般我们不直接更改proto,太暴力了,js中提供了一个method可以比较“温和”地达到目的――object.create(b)。

关于JavaScript类的继承(推荐)

这个方法可行,但这只是具体对象的复用模式,如果做到“利用constructorb创建的对象能复用constructora的对象的原型”呢?

答案是:将b看成是constructorb.prototype,将a看成constructora.prototype.

关于JavaScript类的继承(推荐)

问题:

关于JavaScript类的继承(推荐)

解决方法:

申明constructorb的时候,系统自动会让constructorb.prototype.constructor=constructorb; 在上面代码中为了复用constructora.prototype, 丢掉了constructor, 补上即可。

关于JavaScript类的继承(推荐)

以上是最基本的继承,关于子类如何更通用地调用父类的构造函数及成员(如this._super),如何更通用地实现继承模式(如a=inheritfrom(b)),等等,不在本文范围^o^

以上就是关于JavaScript类的继承(推荐)的详细内容,更多请关注php中文网其它相关文章!

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号