javascript - 使用单例模式而提出的一个问题
本文介绍了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.getName
和Singleton.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屋!
查看全文