Я кое-что читал о двух способах создания синглтона в javascript - простом литеральном способе объекта и другом с техникой закрытия, если мы хотим использовать частные переменные.
Я хочу создать служебную функцию, например
Singleton(classname);
Какой бы класс - "функция-конструктор" я передал здесь в качестве аргумента, метод Singleton преобразует этот класс в объект Singleton, ПЛЮС после вызова new Classname()
, если кто-то снова запускает новое имя класса(), он / она получает некоторые new Error ( "Already instantiated once, this is Singleton" );
Вариант использования, как показано ниже -
function Circle() {this.name = "Circle";}
SingleTon(Circle);
var circle1 = new Circle(); // returns the circle instance
var circle2 = new Circle(); // throws Error "Already instantiated once, this is Singleton"
Я просто пытаюсь определить здесь метод «Singleton».
Я видел аналогичный пример, где метод getInstance используется для получения экземпляра, такого как - Singleton.getInstance(Circle) и т. д., но я ищу конкретный вопрос выше, где другой программист привык создавать экземпляр в «новый» способ пытается запустить new Circle();
второй раз где-то в своем коде и получает ошибку.
Создание синглтона таким образом - это одна проблема, но основная проблема заключается в том, чтобы выдать "Ошибку", для которой, насколько я понимаю, конструктор Circle должен быть изменен где-то в функции Singleton, не знаю, как это сделать.
Есть ли какое-нибудь решение?
Заранее спасибо !!