佛山市南海区建设局网站,美食门户网站源码,2024年小微企业100至300万,网站开发支持上传gif文章の目录一、什么是单例模式二、如何实现单例模式1、利用JavaScript中的全局对象2、静态成员改造参考写在最后一、什么是单例模式
单例模式也称为单体模式#xff0c;保证一个类仅有一个实例#xff0c;并提供一个访问它的全局访问点。 举个栗子#xff1a;一个班级只有一…
文章の目录一、什么是单例模式二、如何实现单例模式1、利用JavaScript中的全局对象2、静态成员改造参考写在最后一、什么是单例模式
单例模式也称为单体模式保证一个类仅有一个实例并提供一个访问它的全局访问点。 举个栗子一个班级只有一个班主任只有一个太阳一个国家只有一个主席这些 “唯一”、“便于访问全局访问)” 的行为对象便称作是单例 二、如何实现单例模式
1、利用JavaScript中的全局对象
全局对象是最简单的单例模式利用ES6的let不允许重复声明的特性刚好符合这两个特点
let instance;
class Person {constructor(name) {if (!instance) {instance this;this.name name;} else {return instance;}}
}
let zhangsan new Person(张三);
let lisi new Person(李四);
console.log(zhangsan lisi);但是我们并不建议这么实现单例因为全局对象/全局变量会有一些弊端
污染命名空间容易变量名冲突维护时不容易管控 (搞不好就直接覆盖了)
2、静态成员改造
class Person {static instance;constructor(name) {if (!Person.instance) {Person.instance this;this.name name;} else {return Person.instance;}}
}
let zhangsan new Person(张三);
let lisi new Person(李四);
console.log(zhangsan lisi);参考
js设计模式之单例模式
写在最后 如果你感觉文章不咋地//(ㄒoㄒ)//就在评论处留言作者继续改进o_O??? 如果你觉得该文章有一点点用处可以给作者点个赞\\*^o^*// 如果你想要和作者一起进步可以微信扫描二维码关注前端老L~~~///(^v^)\\\~~~ 谢谢各位读者们啦(^_^)∠※