2021年7月11日星期日

JS中的单例模式及单例模式原型类的实现

单例模式

单例模式的定义: 保证一个类只有一个实例,并提供一个访问它的全局访问点

通过一个简单的例子来了解单例模式的作用:

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

没有评论:

发表评论

跨境电商资讯:外贸宣传平台有哪些(出口的

现在很多做外贸的人都非常关注 外贸企业怎么推广 ,而现在推广的途径和平台有很多,企业如果都做,成本和时间精力是一个问题,而且并不是所有的推广渠道都是有用的。今天云程网络就来为大家盘点几个有效的外贸推广渠道。 一、海外社交媒体营销 Facebook,领英等海外社交媒体营销在近几年得...