
В этом видео мы разберем такой паттерн, как конструктор. Это, наверное, самый часто применяемый паттерн и многие используют его каждый день, даже не задумываясь, что это паттерн.
Во всех объектно-ориентированных языках конструктор - это просто специальный метод, чтобы создавать новые объекты в памяти.
Давайте с вами создадим класс на es6.
class Person {
constructor (name, age, country) {
this.name = name
this.age = age
this.country = country
}
}
Мы создали класс и описали в нем конструктор, который принимает имя, возраст и страну. И все аргументы, которые мы получили мы присвоили в this.
Теперь когда мы напишем
const person1 = new Person('John', 20, 'RU')
console.log('person1', person1)
Мы получаем новый экземпляр класса.
Это и есть паттерн конструктор. Описав конструктор для класса, который позволяет нам создавать новые объекты, мы применили паттерн constructor.
Но, так как классов в javascript нет, и это всего лишь обертка над prototype, то давайте напишем тот же самый конструктор без es6.
function Person(name, age, country) {
this.name = name
this.age = age
this.country = country
}
const person1 = new Person('John', 20, 'RU')
console.log('person1', person1)
В этом случае мы создали обычную функцию в javascript. Но когда мы вызываем ее, не как функцию, а используя слово new, то этим самым мы говорим javascript, что мы хотим, чтобы наша функция вела себя как конструктор и создавала нам новые экземпляры классов.
Если у вас возникли какие-то вопросы или комментарии, пишите их прямо под этим видео.