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());

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

相关推荐
一 乐8 小时前
婚纱摄影网站|基于ssm + vue婚纱摄影网站系统(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·后端
Boilermaker19928 小时前
[Java 并发编程] Synchronized 锁升级
java·开发语言
MM_MS8 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
꧁Q༒ོγ꧂9 小时前
LaTeX 语法入门指南
开发语言·latex
njsgcs9 小时前
ue python二次开发启动教程+ 导入fbx到指定文件夹
开发语言·python·unreal engine·ue
alonewolf_999 小时前
JDK17新特性全面解析:从语法革新到模块化革命
java·开发语言·jvm·jdk
古城小栈9 小时前
Rust 迭代器产出的引用层数——分水岭
开发语言·rust
ghie90909 小时前
基于MATLAB的TLBO算法优化实现与改进
开发语言·算法·matlab
恋爱绝缘体19 小时前
2020重学C++重构你的C++知识体系
java·开发语言·c++·算法·junit
wuk9989 小时前
VSC优化算法MATLAB实现
开发语言·算法·matlab