Ориентиран ли е Javascript - Характеристики на обектно ориентираните

Съдържание:

Anonim

Въведение в JavaScript

JavaScript също съкращава, тъй като JS е интерпретиран език за програмиране на високо ниво. JavaScript е една от трите основни технологии на световната мрежа. JavaScript позволява създаването на интерактивна уеб страница, различна от статичните уеб страници. Повечето уебсайтове използват JS за разработката, а основните уеб браузъри имат JavaScript двигател, за да го изпълнят. JavaScript е лек, слабо типизиран, базиран на прототип интерпретиран език за програмиране с обектно-ориентирани възможности. JavaScript се използва за разработване на уеб приложения от страна на клиента, той е включен в или препратен от HTML файл, така че кодът да бъде представен в браузъра. В наши дни JavaScript не се използва само за разработване от страна на клиента, но също така се използва и за програмиране от страна на сървъра. Има различни налични рамки, които са изградени с помощта на JavaScript като Node.js. Node.js разполагат с много модули за разработване на микросервизи, API, Database Connections и много други. Механизмът на клиентския клиент на JavaScript предоставя много предимства пред традиционните CGI скриптове. JavaScript може да се използва за действие въз основа на инициирани от потребителя събития като натискане на бутони, навигации, изскачащи съобщения и т.н., а също така се използва и за проверка от страна на клиента. например можете да утвърдите полетата като имейл, парола и т.н. във формата, преди да го изпратите на уеб сървъра.

JavaScript ли е обектно-ориентиран език?

Темата дали JavaScript е чист обектно-ориентиран език или не, винаги е дискусионна. Така че сега ще изясним, че това е JavaScript обектно ориентирано, защото някои казват, че не е обектно-ориентирано, защото няма класове и не може да реализира OOPs понятия като наследяване или капсулиране, а някои казват, че това е обектно-ориентиран език. Преди да обсъждаме тази тема, обектно-ориентирана JavaScript, трябва да разберете, че какво прави език за програмиране обектно-ориентиран език за програмиране?

Има няколко важни характеристики на обектно-ориентираните езици:

  • полиморфизъм:

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

  • Капсулирането:

Обвързване на всички данни и операциите заедно и запазването им в клас.

  • Наследяването:

Детският клас може да бъде извлечен от родителски клас с всички функции от родителския клас и някои собствени свойства.

Тези горепосочени три принципа са в основата на обектно-ориентирания език.

Така че JavaScript може да не следва точната парадигма на обектно-ориентираните принципи, но JavaScript има различни начини за прилагане на OOP.we може да демонстрира как JavaScript следва обектно-ориентираните принципи, като вземете някои примери:

Капсулирането:

Идеята на капсулирането е, че данните на даден обект не трябва да бъдат достъпни директно, вместо това трябва да бъдат достъпни чрез някои методи. Но в JavaScript, няма концепция за клас и обекти, която реализира капсулирането по два начина, което е Функция Обхват и Затваряне

1) Функция обхват:

Това не е нищо друго, освен деклариране на променливите вътре във функциите. Така обхватът на променливите ще бъде ограничен само до функции, а други обекти не могат да получат достъп до променливите. Да вземем пример, за да демонстрираме обхвата на функцията.

функционален тест ()
(
var value = „Здравей!“;
сигнал (стойност) // „Здравей!“;
)
сигнал (стойност) // грешка; стойност не е достъпна извън функцията.

2) Затваряния:

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

var person = (
var name = “JavaScript”;
return (
setName : function(value)(
name = value;
),
getName : function()(
return name;
)
);
);
alert(person.name) //JavaScript
person.setName(“Java”)
alert(person.name) //Java

Така че по този начин можем да декларираме вътрешни обекти или методи за скриване на данните и тези, които могат да бъдат достъпни с помощта на родителски обекти.

Наследяването:

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

1) Прототип:

JavaScript е описан като базиран на прототип език, за да предостави обект на наследяване може да има обект на прототип, който наследява методи и свойства от други обекти. Обектът на прототип на обекти може също да има обект на прототип, който наследява методи и свойства от своя родителски обект и така нататък, това се нарича прототипна верига.

Изображението по-горе показва всички свойства на обекта „животно“, който се създава. И така, „име“ и „тип“ са свойствата на обект „животно“, а свойствата като valueOf, toString, toLocaleString и т.н. са свойствата на родителски обект, който се наследява на животински обект. Вижте изображението по-долу, което показва свойствата на родителския обект, използвайки протота на свойството.

полиморфизъм:

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

1) Генерици (Параметричен полиморфизъм):

Това казва, че типът на променливата изобщо няма значение, те са взаимозаменяеми. Функция, която определя един или повече параметри от параметричния полиморфен тип, не трябва да знае нищо за типовете, тя трябва да третира всички тях като еднакви, защото може да се адаптира към всеки от типовете. Вижте примера по-долу

данни за const = x => y => y.concat (x);

данни (3) ((1, 2)); // (1, 2, 3)

данни („c“) ((„a“, „b“)); // („a“, „b“, „c“)

2) Претоварване (ad-hoc полиморфизъм):

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

Операторът „+“ се използва за няколко начина, като добавяне на числата, свързване на низовете и т.н.

1 + 2 = 3

1, 2 + 2, 3 = 3, 5

„Java“ + „Script“ = „JavaScript“

3) Структурно подтипиране (Структурен полиморфизъм):

Структурният полиморфизъм казва, че различните типове са еквивалентни, например, ако един тип има всички свойства на другия тип, заедно с някои допълнителни свойства (следвайки същата структура)

Тегло на тегло = (стойност: 100, данни: вярно)

Const speed = (стойност: 200, данни: false, foo: (1, 2, 3))

Скоростта се счита за подтип на теглото.

Заключение - Ориентиран ли е обектът на Javascript?

Както обсъждахме на тема Обектно ориентиран Javascript, така че сега можем да заключим, че JavaScript е обектно ориентиран език. Въпреки че няма реални класове, той все още е обектно-ориентиран език, защото следва основните концепции на обектно-ориентираните принципи. Така че, езикът може да бъде обектно ориентиран, ако поддържа обекти дори без класове.

Препоръчителни статии

Това е ръководство за ориентирано към Javascript обектно. Тук сме обсъдили основните понятия и характеристиките на Javascript и обектно-ориентираните. Можете също да разгледате следните статии:

  1. JavaScript срещу VBScript
  2. Използване на JavaScript
  3. JavaScript срещу AngularJS
  4. JavaScript срещу Node JS
  5. Изчерпателно ръководство за обект в Java
  6. Обект в Python
  7. Примери и как генериците работят в C #