Add Singleton Getter

by Artem

JavaScript

'use strict';

class Person {
	constructor() {
  
  }
  get name() {
  	return this.name_;
  }
  set name(value) {
  	this._name = value;
  }
}

function addSingletonGetter(constructor) {
	constructor.getInstance = function() {
  	if (!constructor.instance_) {
    	constructor.instance_ = new constructor();
    }
    
    return constructor.instance_;
  };
}

addSingletonGetter(Person);

let p1 = Person.getInstance();
let p2 = Person.getInstance();

let a = p1.name = 'Anna';
let m =  p2.name = 'Mariia';

console.log(p1, p2);