js 构造模式和继承

本文深入探讨JavaScript构造模式和继承机制,从工厂模式到构造函数,再到原型模式及组合构造模式,最后介绍动态构造模式、寄生构造模式和稳妥继承模式。详细解析每种模式的优缺点,重点讲解组合构造模式和寄生组合继承,为JavaScript开发者提供全面的构造与继承指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

js 构造模式和继承

记录笔记


前言

一、构造模式

创建对象的方式:
1.工厂模式:
使用简单的函数创建对象,为对象添加方法和属性,返回对象。后这个模式被构造函数替代
问题:没有类型

2.构造函数:
可以创建自定义的引用类型,可以使用new操作符。缺点每个成员无法复用,包括函数,由于函数不限制于任何对象,因此没有理由不在多个对象间共享函数
问题:单独使用属性和方法不能复用

3.原型模式
使用构造函数的prototype属性来指定那些应该共享的属性和方法
问题:单独使用共享的属性造成问题,无法向构造函数不能传递参数

4.组合构造模式
组合使用构造函数和和原型模式时,使用构造函数定义实例属性,而使用原型定义共享的属性和方法

5.动态构造模式
当实例属性没有,添加原型的属性,更符合oop构造函数的思想

6.寄生构造模式
扩充对象的属性,添加对象的方法和属性
问题:同工厂模式,无法判断类型

7.稳妥继承模式
类似工厂模式,但是返回对象不封装属性,通过暴露方法暴露属性
优点:安全

二、继承

1.原型继承
给对象的原型对象赋值

2.借用构造函数
在构造方法中
调用XX.call(this);

3.组合继承
结合上面两种继承方式
缺点:构造函数需要被调用两次

4.寄生继承
通过拷贝要继承的对象,然后添加方法和属性

5.寄生组合继承
通过拷贝对象的原型到新对象的原型,避免了构造函数调用两次的问题

总结

组合构造函数是默认的构造方式。
寄生组合式继承,集寄生式继承和组合继承的优点与一身,是实现基于类型继承的最有效方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值