构造函数应接收单个配置对象而非多个参数,通过解构和默认值处理字段,支持合并默认配置、校验必填项、允许函数或实例作为配置值。

构造函数处理大量配置项时,不建议把每个配置都拆成独立形参。直接接收一个配置对象更清晰、可扩展、易维护。
用单个配置对象代替多个参数
把所有配置项打包进一个对象传入,避免形参列表过长、顺序错乱、漏传难发现等问题。
- 构造函数只声明一个参数,比如 config
- 内部用解构或默认值处理字段,缺失字段自动 fallback
- 示例:new Chart({ width: 800, height: 400, theme: 'dark', data: [] })
支持配置合并与默认值
在构造函数里预先定义一套默认配置,再用 Object.assign 或展开运算符合并用户传入项。
- 避免每次手动检查每个字段是否存在
- 保持接口稳定:新增配置项不影响老调用方式
- 可配合 Object.freeze(DEFAULTS) 防止意外修改
校验关键配置项是否存在
对必须字段做简单存在性检查,比静默失败更友好。
立即学习“Java免费学习笔记(深入)”;
- 例如:if (!config.container) throw new Error('container is required')
- 不用校验全部字段,只拦住真正无法运行的缺失项
- 错误信息明确指出哪个配置缺了、期望是什么类型
允许传入函数或实例作为配置值
配置不只是字符串数字,也可能是回调、工具类、已有对象实例。
- 比如 formatter: (val) => '$' + val.toFixed(2)
- 或 renderer: new CanvasRenderer()
- 构造函数内部不做强转,原样保存并按需调用


















