object.assign拷贝prototype实现多继承
1. 单继承
// Shape - 父类(superclass) function Shape() { this.x = 0; this.y = 0; } // Rectangle - 子类(subclass) function Rectangle() { //借用父类构造函数 Shape.call(this); } // 子类续承父类 Rectangle.prototype = Object.create(Shape.prototype); // 恢复构造函数 Rectangle.prototype.constructor = Rectangle;
2. 多继承
function MyClass() { //所有父类构造函数借用 SuperClass.call(this); OtherSuperClass.call(this); } // 使用Object.create继承一个类,此时继承了SuperClass的原型链 MyClass.prototype = Object.create(SuperClass.prototype); // 使用Object.assign拷贝其他父类的方法到自身的prototype Object.assign(MyClass.prototype, OtherSuperClass.prototype); // 恢复constructor MyClass.prototype.constructor = MyClass; //若不使用Object.create, 全部使用Object.assign, 对象为使用{},会继承Object的原型链,造成原型链断裂 //MyClass.prototype = Object.assign({},SuperClass.prototype,OtherSuperClass.prototype);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2018-05-09 手指滑动方向判断
2018-05-09 元素滚到到底部原理