Это обновление моего участия в конкурсе #100DaysOfCode.

Объектно-ориентированное программирование (ООП) было тем модулем, над которым я работал, ну, не знаю, может быть, 40 лет назад? Это, конечно, похоже на это. Я прошел эту сертификацию и за очень короткое время выучил кучу метрик о JavaScript, так что все, что я проработал в прошлых модулях, почти забыто.

Если только у меня не было возможности практиковать их регулярно. И конструкторов объектов нет в этом списке.

Было 26 задач в модуле ООП, 24 задачи в модуле функционального программирования и 21 задача в модуле сценариев промежуточного алгоритма, над которым я сейчас работаю и только что завершил 20-ю. Из всех 21 задачи в этом модуле, эта недавно завершенная 20-я — единственная, в которой я имел дело с созданием объекта с использованием метода функции-конструктора, а также с использованием методов get и set. Get и set были кратко затронуты в ООП, и как только функция конструктора была инициализирована, другие задачи в этом модуле были сосредоточены на методах изменения объекта внутри и снаружи. И я не просматривал эту информацию с тех пор, как закончил этот модуль.

Поэтому мне пришлось немного покопаться, чтобы освежить память о методах get и set, а также заново изучить функциональность конструктора вместо создания объектов с помощью объектного литерала. В большинстве статей, с которыми я сталкивался, get и set обсуждались с точки зрения литералов объектов, и синтаксис, хотя и не сильно отличается, тем не менее отличается:

let Person = {
  firstName: Jane,
  lastName: Doe;
}
//object literal

vs

let Person = (firstName, lastName) => {
  this.firstName = firstName;
  this.lastName = lastName;
}
//constructor function

Как будто это не сбивает с толку, создание методов внутри каждого также отличается, и у get и set есть несколько способов создания:

get firstName: () => {
  return firstName;
}
//object literal method
this.getFirstName = () => {
  return firstName;
}
//constructor function method

И, конечно же, их можно по-разному адаптировать в соответствии с вашим предпочтительным стилем или методом программирования. С многочисленными способами написания функций и создания и изменения объектов большая часть этих знаний уходит на второй план без регулярного использования.

Так как мне не хватало практики с этими методами, мне казалось, что я изучаю это заново. К счастью, я смутно помнил, что существуют методы получения и установки, к которым я мог обращаться и искать. Однако мне пришлось проявить творческий подход, чтобы заново открыть для себя, как создавать объекты с помощью метода конструктора. Как только я понял это, я смог начать собирать свое решение проблемы. И, как и со всем остальным, что я узнал до сих пор, мне нужно гораздо больше практики работы с геттерами, сеттерами и конструкторами (о боже!).

41/100