如何为采用对象解构的ES6函数参数seed设置randomInt生成的默认值
实现方案
你可以直接在参数解构阶段设置默认值,同时兼容不传整个参数对象的场景,完整代码如下:
/** * Initializes a new game, this means creating a new map and centering on the * playerbase * * @param {object} [param1={}] - 配置项对象(可选) * @param {number} [param1.seed=randomInt(0, 100000)] - 地图生成种子,默认取0到100000之间的随机整数 * */ function initNewGame({ seed = randomInt(0, 100000) } = {}) { // 原有函数逻辑 }
说明:
- 解构赋值时给
seed设置默认值randomInt(0, 100000),只要调用时没有主动传seed参数,就会自动执行randomInt生成随机值作为默认值 - 外层的
= {}是为了兼容initNewGame()不传任何参数的调用场景,如果没有这个默认空对象,不传参数时解构会直接抛出错误 - JSDoc里给
param1和param1.seed都加了[]标记为可选参数,同时补充了默认值说明,符合JSDoc规范
内容的提问来源于stack exchange,提问作者Daan Breur
相关产品推荐
相关产品推荐

