Is Javascript object georiënteerd - Kenmerken van Object Oriented

Inhoudsopgave:

Anonim

Inleiding tot JavaScript

JavaScript wordt ook afgekort als JS een geïnterpreteerde programmeertaal op hoog niveau is. JavaScript is een van de drie belangrijkste technologieën van het World Wide Web. JavaScript maakt het mogelijk om andere interactieve webpagina's dan statische webpagina's te bouwen. De meeste websites gebruiken JS voor de ontwikkeling en grote webbrowsers hebben een JavaScript-engine om het uit te voeren. JavaScript is een lichtgewicht, zwak getypeerde, een op prototype gebaseerde geïnterpreteerde programmeertaal met objectgeoriënteerde mogelijkheden. JavaScript wordt gebruikt voor de client-side ontwikkeling van webapplicaties, het wordt opgenomen in of waarnaar wordt verwezen door een HTML-bestand zodat de code wordt weergegeven in de browser. Tegenwoordig wordt JavaScript niet alleen gebruikt voor client-side ontwikkeling, maar ook voor server-side programmeren, er zijn verschillende frameworks beschikbaar die zijn gebouwd met behulp van JavaScript, zoals Node.js. Node.js hebben veel modules voor het ontwikkelen van microservices, API's en databaseverbindingen nog veel meer. Het JavaScript-client-side mechanisme biedt veel voordelen ten opzichte van traditionele CGI-scripts. JavaScript kan worden gebruikt om te handelen op basis van door de gebruiker geïnitieerde gebeurtenissen, zoals klikken op de knoppen, navigaties, pop-upberichten, enz. En het wordt ook gebruikt voor client-side validatie. U kunt bijvoorbeeld de velden zoals e-mail, wachtwoord, enz. op het formulier valideren voordat u het naar de webserver verzendt.

Is JavaScript objectgeoriënteerde taal?

Het onderwerp of JavaScript een pure objectgeoriënteerde taal is of niet, is altijd discutabel. Dus nu gaan we duidelijk maken dat JavaScript Object Oriented is omdat sommigen zeggen dat het niet Object-Oriented is omdat het geen klassen heeft en OOPs-concepten zoals overerving of inkapseling niet kunnen implementeren en sommigen zeggen dat het Object-Oriented-taal is. Voordat we dit object-georiënteerde JavaScript-onderwerp bespreken, moet men begrijpen dat wat een programmeertaal tot object-georiënteerde programmeertaal maakt?

Er zijn enkele belangrijke kenmerken van een objectgeoriënteerde taal:

  • polymorfisme:

Het vermogen van het object om vele vormen aan te nemen. De functie kan bijvoorbeeld worden overbelast met dezelfde naam maar verschillende parameters.

  • inkapseling:

Alle gegevens en bewerkingen samenbinden en in een klasse bewaren.

  • Erfenis:

Child Class kan worden afgeleid van de ouderklasse met alle functies van de ouderklasse en enkele eigen eigenschappen.

Deze bovengenoemde drie principes vormen de basis van een objectgerichte taal.

JavaScript volgt dus misschien niet het exacte paradigma van objectgeoriënteerde principes, maar JavaScript heeft verschillende manieren om de OOP te implementeren. We kunnen aantonen hoe JavaScript objectgeoriënteerde principes volgt door enkele voorbeelden te nemen:

inkapseling:

Het idee van inkapseling is dat de gegevens van een object niet rechtstreeks toegankelijk moeten zijn, maar via sommige methoden. Maar in JavaScript is er geen concept van klasse en objecten dat het op twee manieren inkapseling implementeert, namelijk Function Scope en Closure

1) Functiebereik:

Dit is niets anders dan de variabelen binnen de functies declareren. Het bereik van de variabelen is dus alleen beperkt tot functies en andere objecten hebben geen toegang tot de variabelen. Laten we een voorbeeld nemen om het functiebereik aan te tonen.

functie test ()
(
var value = "Hallo!";
alert (waarde) // "Hallo!";
)
alert (waarde) // error; waarde is niet beschikbaar buiten de functie.

2) Sluitingen:

De sluiting is een binnenbereik dat toegang heeft tot variabelen die buiten het blok zijn gedeclareerd, zelfs nadat die variabelen buiten het bereik zijn gevallen. Hoewel de methoden van een object geen toegang hebben tot de andere lokale variabelen, heeft een binnenobject toegang tot variabelen van de bovenliggende functie. Laten we een voorbeeld nemen om dit te begrijpen.

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

Op deze manier kunnen we dus innerlijke objecten of methoden declareren om de gegevens te verbergen en die kunnen worden benaderd met bovenliggende objecten.

Erfenis:

JavaScript ondersteunt overerving door het concept genaamd Prototypal inheritance, waarmee JavaScript-objecten alle of sommige functies van andere objecten of bovenliggende objecten kunnen verkrijgen.

1) Prototype:

JavaScript wordt beschreven als op prototype gebaseerde taal, om overervingsobjecten te bieden, kan een prototypeobject hebben dat methoden en eigenschappen van andere objecten overneemt. Een prototypeobject van een object kan ook een prototypeobject hebben dat methoden en eigenschappen overneemt van het bovenliggende object enzovoort, dit wordt een prototypeketen genoemd.

De bovenstaande afbeelding toont alle eigenschappen van het object 'dier' ​​dat wordt gemaakt. De "naam" en "type" zijn dus de eigenschappen van een object "dier" en de eigenschappen zoals valueOf, toString, toLocaleString, enz. Zijn de eigenschappen van een bovenliggend object die zijn geërfd aan een dierlijk object. Raadpleeg de onderstaande afbeelding die de eigenschappen van het bovenliggende object toont met behulp van de eigenschap proto.

polymorfisme:

Poly betekent "veel", morfisme betekent "vormen", polymorfisme is niets anders dan verschillende vormen hebben. In JavaScript wordt polymorfisme bereikt door generieke, overbelasting, structurele subtyping.

1) Generics (parametrisch polymorfisme):

Dit zegt dat het type variabele helemaal niet uitmaakt, ze zijn uitwisselbaar. Een functie die een of meer parameters van het parametrische polymorfe type definieert, moet niets weten over de typen, het moet ze allemaal als hetzelfde behandelen omdat het zich aan elk van de typen kan aanpassen. Zie het onderstaande voorbeeld

const data = x => y => y.concat (x);

data (3) ((1, 2)); // (1, 2, 3)

data ("c") (("a", "b")); // ("a", "b", "c")

2) Overbelasting (ad-hoc polymorfisme):

Overbelasting in JavaScript wordt bereikt met behulp van as-hoc polymorfisme. Ad-hoc polymorfisme is een soort polymorfisme waarin polymorfe functies kunnen worden toegepast op argumenten van verschillende typen omdat polymorfe functies het aantal verschillende heterogene implementaties kunnen aangeven, afhankelijk van het type argumenten. Raadpleeg het onderstaande voorbeeld

De operator "+" wordt op verschillende manieren gebruikt, zoals het toevoegen van getallen, het samenvoegen van de tekenreeksen enz.

1 + 2 = 3

1, 2 + 2, 3 = 3, 5

"Java" + "Script" = "JavaScript"

3) Structurele subtyping (structureel polymorfisme):

Structureel polymorfisme zegt dat verschillende typen equivalent zijn, bijvoorbeeld als het ene type alle eigenschappen van het andere type heeft, samen met enkele aanvullende eigenschappen (volgens dezelfde structuur)

Constgewicht = (waarde: 100, gegevens: waar)

Const speed = (waarde: 200, data: false, foo: (1, 2, 3))

Snelheid wordt beschouwd als een subtype van gewicht.

Conclusie - Is Javascript object georiënteerd?

Zoals we hebben besproken is Javascript Object Oriented, dus nu kunnen we concluderen dat JavaScript een Object-Oriented Language is. Hoewel het geen echte klassen heeft, is het nog steeds een Object-Oriented Language omdat het de kernconcepten van Object-Oriented principes volgt. Een taal kan dus objectgericht zijn als deze zelfs zonder klassen objecten ondersteunt.

Aanbevolen artikelen

Dit is een gids voor Is Javascript Object Oriented. Hier hebben we de basisconcepten en de kenmerken van Javascript en Object-Oriented besproken. U kunt ook de volgende artikelen bekijken:

  1. JavaScript versus VBScript
  2. Gebruik van JavaScript
  3. JavaScript versus AngularJS
  4. JavaScript versus knoop JS
  5. Uitgebreide gids voor object in Java
  6. Object in Python
  7. Voorbeelden en hoe generieken werken in C #