本节书摘来自异步社区《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
}
“这种方式很常见呀,很多插件对于参数配置都是这么做的。”小白应道。