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

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实例化对象,再返回匿名函数对象

匿名函数做为公共接口,调用私有变更和私有函数

javascript 复制代码
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());

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

相关推荐
c#上位机1 分钟前
C#异步编程之async、await
开发语言·c#
郑州光合科技余经理13 分钟前
实战分享:如何构建东南亚高并发跑腿配送系统
java·开发语言·javascript·spring cloud·uni-app·c#·php
爱装代码的小瓶子14 分钟前
【c++进阶】C++11新特性:一切皆可{}初始化
开发语言·c++·visual studio
June bug16 分钟前
【Vue】EACCES: permission denied 错误
前端·javascript·vue.js
yaoxin52112317 分钟前
273. Java Stream API - Stream 中的中间操作:Mapping 操作详解
java·开发语言·python
技术小甜甜18 分钟前
[Python实战] 告别浏览器驱动烦恼:用 Playwright 优雅实现网页自动化
开发语言·python·自动化
vortex518 分钟前
Bash 替换机制(一):命令替换与进程替换
开发语言·chrome·bash
一只小阿乐21 分钟前
react 中的组件性能优化
前端·javascript·react.js·react组件性能优化
小徐Chao努力24 分钟前
【GO】Gin 框架从入门到精通完整教程
开发语言·golang·gin
她说..25 分钟前
手机验证码功能实现(附带源码)
java·开发语言·spring boot·spring·java-ee·springboot