位置: 编程技术 - 正文

老生常谈 关于JavaScript的类的继承(老生常谈的例句)

编辑:rootadmin

推荐整理分享老生常谈 关于JavaScript的类的继承(老生常谈的例句),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:老生常谈的名言警句,老生常谈作文,老生常谈的名言警句,老生常谈的典故,老生常谈的例句,老生常谈的典故,老生常谈的名言警句,老生常谈作文,内容如对您有帮助,希望把文章链接给更多的朋友!

其实最一开始学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.

问题:

解决方法:

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

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

本文链接地址:https://www.jiuchutong.com/biancheng/370143.html 转载请保留说明!

上一篇:正则表达式(语法篇推荐)(正则表达式语法 \d)

下一篇:JavaScript程序中实现继承特性的方式总结(javascript程序代码)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络