在封装插件的时候,经常会碰到传入参数和默认参数的问题,如果调用者没有传递参数,那么使用插件的内置属性,如果传递了,那么就设置成传递的参数,例如:
这是一个弹窗插件
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)