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

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

相关推荐
江城开朗的豌豆2 分钟前
Vue Router vs location.href:导航跳转的正确姿势,你选对了吗?
前端·javascript·vue.js
Humbunklung5 分钟前
Rust方法语法:赋予结构体行为的力量
开发语言·后端·rust
萧曵 丶11 分钟前
Rust 内存结构:深入解析
开发语言·后端·rust
2401_8812444012 分钟前
javaweb———html
前端·javascript·html
江城开朗的豌豆13 分钟前
玩转Vue Router:这些实用组件让你的SPA如虎添翼!
前端·javascript·vue.js
前端小巷子16 分钟前
Web开发中的文件下载
前端·javascript·面试
算法练习生17 分钟前
Qt核心类QWidget及其派生类详解
开发语言·c++·qt
1024小神33 分钟前
tauri项目在windows上的c盘没有权限写入文件
c语言·开发语言·windows
KaneLogger36 分钟前
视频转文字,别再反复拖进度条了
前端·javascript·人工智能
老虎062741 分钟前
数据结构(Java)--位运算
java·开发语言·数据结构