《JavaScript设计模式》——10.5 参数适配器

本节书摘来自异步社区《JavaScript设计模式》一书中的第10章,第10.5节,作者:张容铭著,更多章节内容可以访问云栖社区“异步社区”公众号查看

10.5 参数适配器

“除此之外,适配器还有很多用途,比如方法需要传递多个参数,例如……”

function doSomeThing(name, title, age, color, size, prize){}
“那么我们记住这些参数的顺序是很困难的,所以我们经常是以一个参数对象方式传入的。如下所示。”

/**
 * obj.name : name
 * obj.title : title
 * obj.age : age
 * obj.color : color
 * obj.size : size
 * obj.prize : prize
 ***/
function doSomeThing(obj){}

“然而当调用它的时候又不知道传递的参数是否完整,如有一些必须参数没有传入,一些参数是有默认值的等等,此时我们通常的做法是用适配器来适配传入的这个参数对象。如下所示。”

function doSomeThing(obj){
  var _adapter = {
    name : '雨夜清荷', 
    title : '设计模式', 
    age : 24, 
    color : 'pink', 
    size : 100, 
    prize : 50
  };
  for(var i in _adapter){
    _adapter[i] = obj[i] || _adapter[i];
  }
  // 或者 extend(_adapter, obj) 注:此时可能会多添加属性
  // do things
}

“这种方式很常见呀,很多插件对于参数配置都是这么做的。”小白应道。

    原文作者:javascript设计模式
    原文地址: https://yq.aliyun.com/articles/94822
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞