为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

冉冉说 2018-12-19 18:19:21
  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.getName和Singleton.getInstance俩个函数之间的区别是什么呢?Javascript没学好,望大佬解疑,谢谢!~
查看完整描述

1 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

1 Singleton.prototype.getName Singleton.prototype也是对象 相当于这个对象(Singleton.prototype)身上的getName 方法
2 Singleton.getInstance Singleton 这个对象上的方法 getInstance 
var a = Singleton.getInstance('sven1') 相当于这个 Singleton 这个对象上的方法 getInstance 每次调用 那指向相同的引用 因为this.instance 在这个对象

https://img1.sycdn.imooc.com//5c3306c60001e88802640066.jpg

内部 每次虽然传的参数不一样 但是引用都是一个 Singleton

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

https://img1.sycdn.imooc.com//5c3306cf000105e605080469.jpg

查看完整回答
反对 回复 2019-01-07
  • 1 回答
  • 0 关注
  • 509 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信