原则
1,对内:封闭。方法划分的细一些,
2,对外,开放。提供Api和方法,配置
步骤:1,封装js
调用用配置:配置---合并配置----解构赋值
//封装的js
class Dalilog {
constructor(options){
//合并配置
1,方式一,解构赋值
// let {width="100px",title="默认标题",content="默认内容"} = options
// console.log(content,width)
}
}
//调用
new Dalilog({
width:"30%",
title:"测试胞体"
})
2,Object.assign()
Object.assign(arg1,arg2),arg1目标对象,arg2源对象
合并,arg2中有的对象,会覆盖掉arg1,否则用arg1
//方式2,Object.assign(arg1,arg2),arg1目标对象,arg2源对象
//合并,arg2中有的对象,会覆盖掉arg1,否则用arg1
let opts = Object.assign({
width:"100px",
title:"默认标题",
content:"默认内容",
height:"250px",
dragabel:true,//是否可拖拽
maskbale:true,//是否有遮罩
isCancel:false//是否有取消
},options)
console.log(opts)
}
}
//调用
new Dalilog({
width:"40%",
title:"客户输入"
})
2,调用,传入配置
3, 事件委托
把点击时间移到最外层,然后用switch case来判断,是哪个样式点击的
4,自定义事件
5,Promise
三种状态:pending、resolved、rejected---reject抛出错误
//提供方法:then: then:接收两个参数 onresolved,onrejected
三种返还值p.then(function(res){},function(err){})
1.then的回调 不返回,默认不返还、resolved状态的Promised对象
2,返回非Promise对象,默认返还promise对象,会把返回值作为参数保存起来
3,直接return Promise对象
6,async和await
异步函数,同步写法
await后面一定要是一个Promise对象
Promise的方法:Promise.resolve帮你返还状态为resolved的Promise的对象
Promise.reject帮你返还状态为rejected的Promise的对象
Promise.all([p1,p2,p3]) 把多个对象同时执行,一次性执行所有,所有结果放在then中
Promise.race([p1,p2,p3]).then(res=>{
//谁执行的快,拿到最快的结果
})