Skip to content

Instantly share code, notes, and snippets.

@DmitriiNazimov
DmitriiNazimov / script.js
Last active February 13, 2023 12:16
[Пример наследования в JS ES6] #ООП #js #ES6
// Если сделать вот так, то свойство _done реально становится приватным.
const _done = Symbol('done');
class Task {
constructor(title, initiateMessage = 'Создание задачи') {
this.title = title; // Зачем нижнее подчеркивание: название геттеров и сеттеров не должно совпадать
// с названием свойств обьекта. И т.к. здесь у нас есть сеттеры/геттеры, то свойству обьекта
// добавили нижнее почеркивание, чтобы не было ошибки.
// Таким образом свойство становится ПРИВАТНЫМ (на самом деле с ним можно делать что хочешь, но
// по соглашению такие свойства приватные).
@DmitriiNazimov
DmitriiNazimov / js.js
Last active January 1, 2020 20:54
[Синтаксис классов ES5 и ES6] #js #ООП
// ES 5
function PersonType(name) {
this.name = name;
}
PersonType.prototype.sayName = function() { // Не пишем сразу в классе для экономии памяти, т.к. если прописать в классе, то метод создается у каждого экземпляра класса. Если прописать в прототипе (т.е. как тут на 5 строке), то получается один методов для всех экземпляров класса.
console.log(this.name);
}
var person = new PersonType("Nicholas");
person.sayName();
console.log(person instanceof PersonType);
@DmitriiNazimov
DmitriiNazimov / pattern-singleton.js
Last active April 25, 2024 15:22
[JS Паттерн ОДИНОЧКА SINGLETON + синтаксис ООП ES6] #js #ООП #ES6 #Инкапсуляция #Паттерны
/**
*
* ПАТТЕРН SINGLETON
*
* Паттерн Одиночка гарантирует, что класс имеет только один экземпляр, и предоставляет глобальную точку доступа к этому экземпляру.
*
*/