javascript单例模式字面量定义的接口和匿名函数定义的接口;他们之间访问私有变量和私有函数之间的区别

javascript的单例模式:即只有一个实例;
模块模式是在单例模式上扩展而来的

//这种是字面量定义了单例对象的公共接口;
字面量对象调用私有变更和私有函数

var Book=(function(){let name='';checkBook=function(value){name=value;}return{setName:function(value){checkBook(value);},getName:function(){return name;}}
})();
Book.setName('daf');
console.log(Book.getName());

//这种是必须用new实例化对象,再返回匿名函数对象
匿名函数做为公共接口,调用私有变更和私有函数

let Book=(function(){let bookName='';function inputName(name){bookName=name;}return function(){this.setName=function(value){inputName(value);};this.getName=function(){return bookName;}}
})();let book=new Book();
book.setName('fasdfe');
console.log(book.getName());

可看看他们接口只间的区别和实例化调用的区别

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/768526.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

k8s的volumn解析

背景 k8s中有一套自己的存储逻辑,它和docker中的volumn类似,本文就来看一下k8s的volunm的存储设计 k8s的volumn 1.EmptyDir类型的volumn 这种类型的volumn是Pod内的容器共享的,volumn的生命周期和Pod的生命周期是一致的,不过大…

Day08 Java复习8 Spring MVC概念

Day09 Java复习9 Spring MVC spring mvc 的核心组件是什么? DispatcherServlet 1.JAVA 和Spring 、Spring Boot 、Spring MVC的关系 你要举办一个生日派对,而且你希望它既特别又好玩。Java就像是举办派对的地方,Spring、Spring Boot和Spri…

20240319-图论

图论练习题目 拓扑排序深度优先搜索方法广度优先搜索方法 无向无权图无向有权图有向无权图 利用广度优先搜索算法有向有权图 带排序的广度优先算法/dijkstra最小生成树prims算法Kruskals Algorithm 最小割 min-cut二分图 Bipartite Graph 队列例题1 所有可能的路径例题2 岛屿数…

stm32知识总结--简单复习各部件

目录 内部结构 部件介绍 配置步骤 之前学了很多部件,配置了很多参数,但是没有很系统地把他们连接在一起,今天这个图里简洁描述了资源与资源之间的关系。 内部结构 部件介绍 黑框部分为CPU、内部有一个内核专门处理事件,所有的…

Ubuntu Desktop 更改默认应用程序 (Videos -> SMPlayer)

Ubuntu Desktop 更改默认应用程序 [Videos -> SMPlayer] References System Settings -> Details -> Default Applications 概况、默认应用程序、可移动介质、法律声明 默认应用程序,窗口右侧列出了网络、邮件、日历、音乐、视频、照片操作的默认应用程序…

【stable diffusion扩散模型】一篇文章讲透

目录 一、引言 二、Stable Diffusion的基本原理 1 扩散模型 2 Stable Diffusion模型架构 3 训练过程与算法细节 三、Stable Diffusion的应用领域 1 图像生成与艺术创作 2 图像补全与修复 3 其他领域 四、Stable Diffusion的优势与挑战 👉优势 &#x1f…

秒懂快速熟悉: PostgreSQL中的Copy(快速加载)

这里简要介绍一下PG中的Copy以及\Copy快速加载数据的基本用法及注意事项。同时也比较了Batch Insert与Copy之间的性能差异。它们在PG日常维护与使用的场景中经常要用到。 1.Copy语法 PG 9.0以后的新语法如下: COPY table_name [ ( column_name [, ...] ) ] FROM { filenam…

回调函数;qsort库函数介绍及实现;

目录 回调函数; 代码: qsort库函数介绍及实现; 冒泡排序; 代码: qsort函数实现排序; qsort介绍及使用; 比较两个数; 代码: ​编辑比较字符; 代码&a…

排序算法:如冒泡排序、插入排序、选择排序、快速排序、归并排序

冒泡排序(Bubble Sort):冒泡排序是一种简单的排序算法。它通过反复交换相邻的元素,将最大的元素逐步“浮”到数组的末尾。基本思想是每次比较相邻的两个元素,如果顺序不对就进行交换,直到整个数组有序。时间…

浙大版《C语言程序设计(第4版)》题目集-习题3-5 三角形判断

给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),检验它们能否构成三角形。 输入格式: 输入在一行中顺序给出六个[−100,100]范围内的数字,即三个点的坐标x1、y1、x2、y2、x3、y3。 输出格式: 若这3个点不能构成三角形,则在一行中输…

数据在内存里面的存储

学习流程 ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————…

中间件设置静态资源目录

文章目录 为什么要设置静态资源目录设置静态资源代码示例 为什么要设置静态资源目录 服务器中的代码,对于外部来说都是不可见的, 所以我们写的html页面,浏览器无法直接访问 如果希望浏览器可以访问,则需要将页面所在的目录设置静…

axios的post请求,数据为什么要用qs处理?什么时候不用?

axios 是一个基于 Promise 的 HTTP 客户端,用于浏览器和 node.js。当我们使用 axios 发送 POST 请求时,经常需要处理请求体中的数据。qs 是一个库,用于将 JavaScript 对象或值转换为 URL 编码的字符串,这在发送表单数据时特别有用…

数据结构面试常见问题之串的模式匹配(KMP算法)系列-大师改进

😀前言 KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法) KMP算法的优势: 提高了匹配效率,时间复杂度为O(m…

软考 系统架构设计师系列知识点之云原生架构设计理论与实践(4)

接前一篇文章:软考 系统架构设计师系列知识点之云原生架构设计理论与实践(3) 所属章节: 第14章. 云原生架构设计理论与实践 第2节 云原生架构内涵 14.2 云原生架构内涵 关于云原生的定义有众多版本,对于云原生架构的…

IDEA, Pycharm, Goland控制台乱码

IDEA, Pycharm, Goland控制台乱码 问题描述: 控制台出现����等乱码 复现频率: 总是 解决方案: 以IDEA为例 添加 -Dfile.encodingUTF-8位置 idea64.exe.vmoptions 在安装idea的bin目录idea.vmoptions idea客户端 示意图

Java IO流与网络编程入门教程:通俗易懂,实例丰富

一、IO流概念与应用 什么是IO流? 想象一下水管流水,水从一端流入流出的过程就像是数据在程序中的传输。在Java世界里,IO流就是这样一个抽象概念,它是数据在不同存储介质或网络之间传输的一种方式。简单来说,如果你把数据看作水流,那么IO流就是承载这个水流的管道,它可以…

解决长尾问题,BEV-CLIP:自动驾驶中复杂场景的多模态BEV检索方法

解决长尾问题,BEV-CLIP:自动驾驶中复杂场景的多模态BEV检索方法 理想汽车的工作,原文,BEV-CLIP: Multi-modal BEV Retrieval Methodology for Complex Scene in Autonomous Driving 链接:https://arxiv.org/pdf/2401.…

YoloV8改进策略:Block改进|PKINet

摘要 PKINet是面向遥感旋转框的主干,网络包含了CAA、PKI等模块,给我们改进卷积结构的模型带来了很多启发。本文使用PKINet的Block替换YoloV8的Block,实现涨点。改进方法是我独创首发,给写论文没有思路的同学提供改进思路,欢迎大家订阅! 论文:《Poly Kernel Inception …

Pycharm配置conda

1.下载conda Free Download | Anaconda . 2.配置环境 1.conda自带base环境 2.创建环境 3. Pycharm创建项目,选择环境 3.Pycharm中新建conda环境