JS通过解构或Object.assign去合并2个对象

JS通过解构或Object.assign去合并2个对象

HaoOuBa
2021-02-13 / 0 评论 / 226 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年06月21日,已超过525天没有更新,若内容或图片失效,请留言反馈。

在封装插件的时候,经常会碰到传入参数和默认参数的问题,如果调用者没有传递参数,那么使用插件的内置属性,如果传递了,那么就设置成传递的参数,例如:

这是一个弹窗插件

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)
    }
}
6

评论 (0)

取消