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

  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没学好,望大佬解疑,谢谢!~

冉冉说
浏览 510回答 1
1回答

慕田峪4524236

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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript