码迷,mamicode.com
首页 > 编程语言 > 详细

设计模式 javascipt - singleton 单例模式实现

时间:2021-06-02 14:36:57      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:on()   es6   return   设计   单例模式   prototype   his   null   static   


//1. ES5 闭包实现单例模式

        let singleton = (function(){
            let instance = null;

            return function(name){
                this.name = name;

                instance = instance? instance : this;
                return instance;
            }
        })();

        singleton.prototype.getName = function(){
            return this.name;
        }
        let w = new singleton("hello");
        console.log(w.getName());

        let m = new singleton("nihao")
        console.log(m.getName());


// 2. ES6 实现单例模式
   
     class singleton {
         constructor(name){
             this.name = name;
         }
         
         static getInstance(name){
             if(!this.instance){
                 this.instance = new singleton(name);
             }

             return this.instance;
         }
      }

      let w = singleton.getInstance("hello");
      console.log(w.name);

      let m = singleton.getInstance("nihao")
      console.log(m.name);



设计模式 javascipt - singleton 单例模式实现

标签:on()   es6   return   设计   单例模式   prototype   his   null   static   

原文地址:https://www.cnblogs.com/halo-vv/p/14822639.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!