日期:2014-05-16  浏览次数:20344 次

JavaScript学习笔记(十八) 配置对象

配置对象(Configuration Objects)

配置对象模式是一种可以提供简洁API的一种方式,特别是当你正在构建一个类库或者其它会被别其它程序使用的代码。
这是一个不争的事实,软件需求在开发和维护时都会改变。当你开始工作的时候,心中有一些需求,但后来会增加更多的需求,这是经常发生的。

想象一下你正在写一个函数叫做addPerson(),接受一个first和second名字并且将一个person加到person列表中。
function addPerson(first, last) {...}
然后你得知事实上出生日期也需要被储存,并且性别和地址是可选的。所以你修改函数,添加新的参数(小心翼翼的将可选的参数放到参数列表后面)。
function addPerson(first, last, dob, gender, address) {...}
此时此刻,这个函数签名已经有一点长了。然后你得知你需要添加一个usename并且是必须的,不是可选的。现在函数的调用必须传递即使是可选的参数并且非常
小心防止混淆参数的位置:
addPerson("Bruce", "Wayne", new Date(), null, null, "batman");
传递大量的参数是不方便的,一个更好的方式用一个参数代替所有的参数,这个参数是个对象;然我们叫他conf,代表configuration。
addPerson(conf);
接下来函数的调用者就可以这样做:
var conf = {
    username: "batman
    first: "Bruce",
    last: "Wayne"
};
addPerson(conf);
配置对象的好处就是:
  • 不需要记住参数和他们的位置
  • 可以安全的省略可选参数
  • 读起来和维护起来更简单
  • 添加和移除参数更加方便
配置对象不好的地方:
  • 需要记住参数的名称
  • 属性名不能被压缩
这种模式在当你创建DOM元素的时候非常有用,比如:设置元素的CSS样式,因为元素和样式拥有大量的属性,绝大部分都是可选的。