JavaScript函数参数解构中重命名对象键是否值得使用?
关于副作用的问题
这种写法是ECMAScript标准明确规定的对象解构重命名语法,没有任何额外的运行时副作用:
- 性能和直接读取对象属性、或者不重命名的解构写法完全一致,不会产生额外的执行开销
- 不会修改传入的原始对象,也不会产生任何隐式的全局变量污染
关于是否推荐使用
非常推荐你继续使用这种写法,你现在的用法刚好是这个语法的最佳实践场景,优势非常明显:
- 调用侧的参数键名
beginWith、from语义清晰,哪怕是第一次调用这个函数的开发者,不用读文档也能快速理解每个参数的作用,也不会出现位置参数传错顺序的问题 - 函数内部使用重命名后的短变量
character、text,代码更简洁,不会因为对外的参数键名过长导致内部逻辑代码冗余
你可以进一步优化写法,让函数更健壮,避免不传参数时抛出解构错误:
// 外层加默认空对象,单个参数也可以配置默认值 function getWords({ beginWith: character = '', from: text = '' } = {}) { return text.split(" ").filter(word => word.startsWith(character)); }
内容的提问来源于stack exchange,提问作者Ananta
相关产品推荐
相关产品推荐

