分享参数适配器的一段js方法

研究一下各种封装好的js库还是很有收获的,毕竟都是大师级别的创作,先分享一下默认参数和传递参数之间的一种适配器设计模式。

/**
 * 定义参数适配器,来适配参数每一个属性
 * @def     是默认的属性对象
 * @obj     是传递的属性对象
 * return   拓展后的属性对象
 ***/ 
function extend(def, obj) {
    for (var i in obj) {
        // def有i属性,覆盖,没有i属性添加
        def[i] = obj[i]
    }
    // 返回拓展后的结果
    return def;
}
/**
 * 创建一个按钮类
 * @param   按钮的一些信息
 **/ 
var Button = function (param) {
    var button = document.createElement('button');
    // 为了保证每一个按钮渲染时候样式良好,我们可以设置一些默认属性
    var defaults = {
        // 灰色的背景
        background: 'gray',
        // 白色字体
        color: 'white',
        // 14像素字体
        fontSize: '14px',
        text: '按钮'
    }
    // 适配参数的默认值
    var defs = extend(defaults, param) 
    // 渲染按钮的样式
    for (var i in defs) {
        // i 代表属性名称
        // defs[i]代表属性值
        // text属性是特殊的
        if (i === 'text') {
            button.innerHTML = defs[i]
        } else {
            // 就是一个样式属性
            button.style[i] = defs[i] 
        }
    }
    // 将按钮渲染到页面中
    document.body.appendChild(button)
}
// 实例化一个按钮
new Button({
    background: 'red',
    text: '这是一个按钮',
    fontSize: '16px',
    color: 'green'
})
new Button({
    background: 'green'
})

这种方法适用在很多封装好的流行的库中,譬如大家经常使用的bootstrap、jquery中,我们自己封装库还有平时写复用性代码的时候也非常适用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值