单利模式的几大特点
- 命名空间的管理员
单利模式提供命名空间 ???
开发者通常用名字或者拼音来命名变量或者是函数名称,由于我们的单词和拼音都是有限的,所以不同人定义变量或者是方法名称都很有可能重复,因此 命名看,空间来约束每一个人定义的变量,如果公司团队开发命名名称时可以用 lishi,xiaoli,所以单利模式通常来定义命名空间的
//这里是小李命名空间,已经小李写的对应函数
let xiaoli = {
getid(id){
return document.getElementById(id);
},
getdom(name){
return document.querySelector(name);
}
}
- 模块功能分明
let lihua = {
getDom:{
getid(id) {
return document.getElementById(id)
},
gitName(name) {
return document.querySelector(name)
},
},
Ajax() {
return {
get() {},
post() {}
}
}
}
- 不能修改静态变量
let Conf = (()=>{
let config = {
MAX_NUM:10000,
MIN_NUM:1,
COUNT:10001
};
return {
get(name){
return config[name]
}
}
})();
Conf.get('COUNT')
- 有懒惰性
let LAS = (()=>{
let initial= null;
function singe(){
return {
Method(){},
propery:100
}
}
return ()=>{
console.log(initial) // 第一次调用初始化时 为 null
if(!initial){ // 第一次没有值 进判断,赋值
initial = singe()
}
console.log(initial) //赋值后的变量
return initial;
}
})()
LAS().LAS
LAS().LAS