单例模式
单例模式的定义: 保证一个类只有一个实例,并提供一个访问它的全局访问点
通过一个简单的例子来了解单例模式的作用:
class Div { constructor() { return document.createElement("div"); }}btn.addEventListener("click", function (event) { const div = new Div(); document.body.appendChild(div);});现在页面上的这个按钮每被点击一下就会生成一个div,但是现在如果这个div是登录框,我当然就会想要这段函数只生成一个,这时候就可以用到单例模式的思想:让一个类只会生成一个实例。
在JS里实现单例模式很简单,只要使用闭包就能做到,这是使用ES6的class语法实现的单例模式:
let div = null;class Div { constructor() { return div ?? (div = document.createElement("div")); }}这样,通过闭包实现了单例模式,无论点击多少次按钮,只会生成一个div。
考虑到单例模式应用的广泛,我实现了一个原型类,通过继承该原型类可以直接得到一个单例模式的类:
const SingletonConstructor = (function () { const instances = {}; return class { constructor(Constructor) { let className = new.target.name; if (instances[className]) { return instances[className]; } else { let instance = new Constructor(); Object.setPrototypeOf.call(null, insta......原文转载:http://www.shaoqun.com/a/866383.html
跨境电商:https://www.ikjzd.com/
hunter:https://www.ikjzd.com/w/992
败欧洲网站:https://www.ikjzd.com/w/1555
easybuy:https://www.ikjzd.com/w/2162
单例模式单例模式的定义:保证一个类只有一个实例,并提供一个访问它的全局访问点通过一个简单的例子来了解单例模式的作用:classDiv{constructor(){returndocument.createElement("div");}}btn.addEventListener("click",function(event){constdiv=newDiv(
mein:https://www.ikjzd.com/w/1601
心怡科技:https://www.ikjzd.com/w/1327
eBay卖家在新条款下不能再使用paypal:https://www.ikjzd.com/articles/145293
以宠物用品类目做案例,教你如何避免"杀猪盘":https://www.ikjzd.com/articles/145289
跨境小白收藏|亚马逊专业术语学习分享:https://www.ikjzd.com/articles/145274
梯拓科技:做TikTok引流带货前需要知道的8个数据!:https://www.ikjzd.com/articles/145271
我和两个女领导玩双飞 那一夜夹得我好紧好爽:http://lady.shaoqun.com/a/248285.html
舌尖分开她的细缝舔舐 他的舌尖在她的小核上逗弄:http://www.30bags.com/m/a/249712.html
睡前故事"爱睡懒觉的猪"哄女朋友睡觉:http://lady.shaoqun.com/a/415042.html
男人渴望得到你,所以"用心":http://lady.shaoqun.com/a/415043.html
69岁女子被29岁男护士性侵,韩国电影《老妇人》无法摆脱痛苦:http://lady.shaoqun.com/a/415044.html
男人真的很想想想女人会怎么做:http://lady.shaoqun.com/a/415045.html
没有评论:
发表评论