Javascriptはシングルモデルを実現します.
2136 ワード
一般的には、Javascriptはnewのオブジェクトごとにインスタンスを生成し、インスタンスは異なるアドレスを指す.次のように:
(function(){
function Person(name){
this.name = name;
}
Person.prototype.work = function(){
console.log(this.name + " is working");
}
var p1 = new Person("Darren");
p1.work();
var p2 = new Person("Jack");
p2.work();
}());
以上、newがPersonオブジェクトを出すたびに違います.Javascriptでシングルモデルを実現するにはどうすればいいですか?あるオブジェクトを生成するときは、存在するかどうかを判断します.存在するとオブジェクトが生成されず、存在しないとオブジェクトが生成されます.
(function(){
var PersonSingleton = (function(){
var instance;
function init(){
return {
name: 'Anonymous',
work: function(){
console.log(this.name + ' working');
}
};
}
return {
getInstance: function(){
if(!instantiated){
instantiated = init();
}
return instantiated;
}
}
})();
var p1 = PersonSingleton.getInstance();
p1.work();
var p2 = PersonSingleton.getInstance();
p2.work();
}());
以上、Psonsingletonオブジェクトのget Instance方法によって得られたインスタンスは毎回同じです.