在封装插件的时候,经常会碰到传入参数和默认参数的问题,如果调用者没有传递参数,那么使用插件的内置属性,如果传递了,那么就设置成传递的参数,例如:
这是一个弹窗插件
class Dialog {
    constructor(options = {}) {
        // 插件的默认配置
        const defaultOption = {
            title: "提示",
            size: "small",
            show: false
        }
        for (let key in options) {
            defaultOption[key] = options[key]
        }
    }
}
new Dialog({
    title: '标题',
    size: 'mini'
})传统的会使用上面的for循环,然后将默认参数里的参数替换掉,在ES6出来后,上面的写法就可以改成下面的简写
第一种方式
class Dialog {
    constructor(options = {}) {
        // 插件的默认配置
        const defaultOption = {
            title: "提示",
            size: "small",
            show: false,
            // 通过展开运算符
            ...options
        }
    }
}第二种方式
class Dialog {
    constructor(options = {}) {
        // 插件的默认配置
        const defaultOption = {
            title: "提示",
            size: "small",
            show: false
        }
        // 通过Object.assign方法
        const newOption = Object.assign(defaultOption, options)
    }
} 
    
评论 (0)