javascript - 使用单例模式而提出的一个问题

查看:73
本文介绍了javascript - 使用单例模式而提出的一个问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

  var Singleton = function(name) {
    this.name = name;
    this.instance = null;
  };
  Singleton.prototype.getName = function() {
    alert(this.name);
  };
  Singleton.getInstance = function(name) {
    if(!this.instance) {
      this.instance = new Singleton(name);
    }
    return this.instance;
  };
  var a = Singleton.getInstance('sven1');
  var b = Singleton.getInstance('sven2');
  console.log(a === b); // true

代码中的Singleton.prototype.getNameSingleton.getInstance俩个函数之间的区别是什么呢?
Javascript没学好,望大佬解疑,谢谢!~

解决方案

1 Singleton.prototype.getName Singleton.prototype也是对象 相当于这个对象(Singleton.prototype)身上的getName 方法
2 Singleton.getInstance Singleton 这个对象上的方法 getInstance
var a = Singleton.getInstance('sven1') 相当于这个 Singleton 这个对象上的方法 getInstance 每次调用 那指向相同的引用 因为this.instance 在这个对象
内部 每次虽然传的参数不一样 但是引用都是一个 Singleton

所以 传不同名字 比如下图 b c d

这篇关于javascript - 使用单例模式而提出的一个问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆