Запрет изменения переменной

234
22 февраля 2018, 16:06

Есть класс который должен быть инициализирован один раз. Как мне сделать так что бы при повторном создании "экземпляра класса" он не создался?

поставить в конструкторе if.

А вот что проверять? const не пойдет, так как его нужно объявлять только внутри класса. записать созданный первый раз объект в window? Да, но ведь его можно будет удалить (window.obj) или изменить.

Как можно заморозить window.obj?

Answer 1

Можно использовать самоопределяемую функцию. После первого запуска она будет переопределена и при повторном вызове вернет объект, который был создан на этапе первого вызова.

var SomeClass = function() {
  var self = this;
  this.field1 = 'value1';
  /* ... */
  SomeClass = function() {
    return self;
  };
  return self;
};
READ ALSO
Задать цвет фона для кнопки через javascript

Задать цвет фона для кнопки через javascript

Помогите задать цвет фона для кнопки через javascript

283
WebStorm поддержка NodeJs and NPM.

WebStorm поддержка NodeJs and NPM.

Нашел на просторах следующий код и попытался его реализовать в WebStorm

267
Сложности ERP системы

Сложности ERP системы

Недавно поступило предложение заняться разработкой ERP системы, и у меня возникло несколько вопросов

236