Снимка на Helloquence на Unsplash

Модели на незабавно използване в JavaScript

Моделите на Instantiation са начини за създаване на нещо в JavaScript. JavaScript предоставя четири различни метода за създаване на обекти. Независимо кой метод използвате, всеки метод ще осигури следната функционалност:

  • Създайте обект
  • Създайте методи и свойства за този обект

Има четири модела на инстанция в JavaScript. Те са:

  1. функционален
  2. Функционално-споделено
  3. Prototypal
  4. Pseudoclassical

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

С функционалната инстанция първо създаваме функция. Вътре във функцията създаваме празен обект и добавяме свойства и методи към него. След това връщаме този обект.

Всеки път, когато се извика функцията, ще имаме достъп до методите, които са създадени. Ето пример за функционална инстанция:

Професионалисти:
За повечето хора, които учат JavaScript, това е методът, който са научили за създаване на нов обект. За всеки, който чете вашия код, е лесно да се разбере, защото всички функции се съдържат в обекта. Свойствата са частни, тъй като се съдържат в обхвата на затварянето.

Недостатъци:
Тъй като всички методи се съдържат във функцията, ако създадете втора инстанция на този обект, ще дублирате всички свойства и методи в паметта. Ако създадете нов обект с помощта на този метод, след което промените някой от методите и създадете нов екземпляр, двата обекта ще се позовават на различни методи.

Функционална споделена моменталност

Един от недостатъците на функционалната инстанция е, че дублирате методите в паметта всеки път, когато създавате нов обект. Функционалната споделена инстанция се опитва да преодолее това ограничение чрез споделяне на методите между всички обекти.

Точно като функционалната инстанция, ние започваме с функция с празен обект вътре и определяме свойства в рамките на функцията. Методите са дефинирани в друг обект. След това разширяваме обекта си с тези методи. В крайна сметка връщаме обекта. Всеки обект, създаден чрез функционална споделена инстанция, ще има указател към същите методи без дублиране. Ето пример за функционална споделена инстанция.

Професионалисти:
Премахва дублирането на методи, открити във функционална инстанция, което подобрява управлението на паметта.

Недостатъци:
Показалците към споделените методи се създават, когато обектът се инстанцира. Ако промените методите и след това създадете нови обекти, те първоначално обект и новият обект ще се отнасят към различни методи.

Прототипна мигновеност

Прототипната инстанция използва прототипната верига за създаване на обекти. Методите са прикрепени към прототипа на обекта с помощта на метода Object.create.

За да започнете, ще създадете всички методи на отделен обект. След това създавате функция. Вътре във функцията използвате метода Object.create, за да прикачите методите. Ще дефинирате и всички свойства във функцията. След това връщате обекта. Ето пример за прототипна инстанция.

Професионалисти:
Методите са прикачени към прототипа на обекта, вместо да бъдат върнати в него. Всеки метод е достъпен за всеки създаден обект без дублиране на методи в паметта.

Недостатъци:
За да използвате този метод, трябва да създадете обект, да го декорирате и след това да го върнете от функцията конструктор.

Псевдокласическа моменталност

Псевдокласическата инстанция се опитва да преодолее количеството написване, необходимо за създаване на обект, използвайки прототипна инстанция. Подобно на прототип, Псевдокласическата инстанция използва веригата на прототипа.

JavaScript предоставя по-голямата част от функционалностите, които създават с прототипно копие с използването на ключовата дума new. Псевдокласическата инстанция използва това при създаването на нов обект.

Вместо да създава нова променлива и да й присвоява Object.create (), псевдокласическата инстанция я присвоява на „това“.
За да започнете, създавате нова функция и създавате свойства, използвайки ключовата дума „това“. Методите са назначени на прототипа. За да създадете нов обект, използвате ключовата дума „нов“. Ето пример за псевдокласическа инстанция.

Професионалисти:
Използвайки функционалност, вградена в JavaScript, псевдокласическата инстанцияция е най-оптимизираният метод за създаване на обекти.

Недостатъци:
Той е малко по-сложен в дизайна си в сравнение с останалите три метода.

резюме

Разработчиците на JavaScript трябва да са запознати с различните методи, достъпни за създаването на обекти. Всеки метод има своите плюсове и минуси.

Размерът на вашия код и изискванията за производителност трябва да определят кой метод на инстанция използвате.

Още статии

Благодаря, че прочетохте моята статия. Ако ви харесва, моля кликнете върху иконата хлопка по-долу, така че другите да намерят статията. Ето още няколко мои статии, които може да ви заинтересуват:
Първо търсене на широчина в JavaScript
Първи брой импресии - защо вашият Github Repo няма файл ReadMe?
Ето 5 оформления, които можете да направите с FlexBox