Эта статья содержит краткий обзор таких концепций JavaScript, как замыкания, фабричная функция и функция-конструктор.

Закрытия

Чтобы лучше узнать замыкания, мы рассмотрим следующие указатели:

  1. Функции в комплекте.
  2. Лексический объем.
  3. Вложенная функция.
  4. Функция, возвращающая другую функцию.

Вложенная функция — это способ объединения функций замкнутым образом.

Обратите внимание

Во вложенной функции. Внешняя функция не может получить доступ к переменной, объявленной внутри внутренней функции. Но внутренняя функция может обращаться к переменным, объявленным во внешней функции.

Ex — Вложенная функция

функция func1(){

функция func2(){

}

функция2()

}

Лексическая область —

Через лексическую область видимости функция может ссылаться на окружающее ее состояние. (МДН)

функция func1(){

пусть а = 10

функция func2(){

a = a + 1 // 11 [Это связано с тем, что начальное значение a передается функцией func2() из внешней функции func1(). — пример лексического объема]

}

функция2()

}

Другой синтаксис закрытия -

функция func1(){

пусть а = 10

функция func2(){

a += 1

}

функция возврата2

}

константное значение = func1()

console.log(value) // будет отображаться объявление функции func1

console.log(value()) // () вызовет func1(), как только он достигнет конца функции, он вернет func2. Функция func2() сохранит значение a даже после выполнения функции func1().

Закрытие способствует конфиденциальности данных. Это связано с тем, что переменная a доступна только функции func2(). Поскольку мы не можем получить доступ к a вне функции func1().

Заводская функция

Фабричная функция возвращает новый объект.

Синтаксис.

имя функции (значение) {

возвращаться{

значение: функция () {

return ‘Имя есть’+ val

}

}

}

const nameVal = имя('Елена')

console.log(nameVal.value()) //Елена

Случай использования. Вы можете подумать об использовании фабричной функции, когда хотите работать с объектами без ключевого слова new. Каждый раз, когда вам нужен такой объект, как функциональность, вам нужно только вызвать фабричную функцию.

Кроме того, нет необходимости использовать это ключевое слово.

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

имя.прототип.значение = функция(){

вернуть «Привет»

}

Функция конструктора

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

Синтаксис.

функция Func(имя, возраст){

это.имя = имя,

this.age = возраст,

this.getDetails = функция () {

вернуть this.name + ‘ ’ + this.age

}

}

Первоначально ключевое слово this функции-конструктора Func будет иметь значение {}.

Когда мы создаем объект Func — const Obj = new Func («Елена», 19)

Теперь ключевое слово this связано с объектом Obj.

console.log(Obj.getDetails())// Елена 19

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

Заключение

Вы можете использовать замыкания, фабричные функции и функции конструктора в зависимости от ваших требований.

Надеюсь, эта статья помогла!

Если вы нашли это полезным, не стесняйтесь ставить лайк или подписываться.