设计模式(二十七) 适配器模式

//比如有个框架A和jQ很像,现在要把A写的项目替换为jQ的
//可以使用该模式修改A框架,不需要改业务代码
var A = A || {};
A.g = function(id){
    return document.getElementById(id);
}
//改为
A.g = function(id){
    return $(id).get(0);
}

//参数适配
//有时传入参数中可能没有需要的参数,可以使用适配器
//相当于给了默认值
function a(obj){
    var kk = {
        o: 1,
        p: 2,
        q: 3
    }
    for(var i in kk){
        kk[i] = obj[i] || kk[i];
    }
    //或extend(kk, obj),但该方法会多添加属性
}