Inleiding tot de statische JavaScript-methode

Statische JavaScript-methoden worden meestal gebruikt om hulpprogramma's te maken. Ze worden geïntroduceerd in ES6 voor de klassespecifieke methode voor objectgeoriënteerd programmeren in JavaScript.

Om een ​​statische methode te declareren, kunnen we eenvoudig een statisch trefwoord gebruiken met de methodehandtekening. De statische methode wordt niet aangeroepen op de instantie van klasse die ze zijn gemaakt om rechtstreeks op de klasse aan te roepen.

We kunnen dus zeggen dat JavaScript ons een statische methode biedt die bij de klasse hoort, maar niet bij de instantie van de klasse. Dus net als Java hebben we geen instantie van de klasse nodig om de statische methode in JavaScript ook aan te roepen. Vandaar dat de statische methode in JavaScript tot de klasse zelf behoort.

Syntaxis:

static methodName()()

In JavaScript gebruiken we ook het statische trefwoord om elke methode als een statische methode te definiëren. We moeten alleen het statische trefwoord gebruiken samen met de naam van de methode. Methodenamen kunnen van alles zijn. Er zijn veel punten met betrekking tot dit statische trefwoord. Laten we ze een voor een controleren:

  • Een klasse kan een willekeurig aantal statische methoden bevatten. Met andere woorden, een klasse kan meer dan één statische methode hebben.
  • De statische methode kan elke naam hebben, zoals elke andere methode of functie.
  • Om een ​​statische methode van een andere statische methode aan te roepen, kunnen we dit sleutelwoord gebruiken.
  • De statische methode kan worden gebruikt om hulpprogramma's te maken.
  • Als we in dergelijke gevallen een statische methode uit de niet-statische methode willen aanroepen, kunnen we dit trefwoord niet gebruiken. We moeten de statische methode aanroepen met de klassenaam of als de eigenschap van de constructor.
  • We kunnen meer dan één statische methode met dezelfde naam declareren, maar als we dat doen, roept JavaScript altijd de laatste aan.

Een eenvoudig voorbeeld om de syntaxis van de statische methode aan te tonen.

Code:


class Syntax
(
static displayMessage()
(
return "static method called"
)
)
document.writeln(Syntax.displayMessage());

In het bovenstaande voorbeeld roepen we de statische methode aan waarbij de klassenaam niet het exemplaar van de klasse maakt. De klassenaam alleen als een instantie gebruiken.

Hoe statische methoden werken in JavaScript?

  • Statische methode zijn methoden waarbij een object van een klasse moet worden gemaakt voordat ze daadwerkelijk werden aangeroepen. Om ze te noemen moeten we het object maken van de klasse waarin het is gedefinieerd. De statische methode krijgt op twee manieren een oproep met behulp van dit sleutelwoord en een andere van de constructor.
  • Statische methoden kunnen niet direct de niet-statische methode aanroepen. On-statische methoden gebruiken de variabele status van een instantie om hun gedrag te beïnvloeden. De statische methode kan de instantievariabele status ook niet zien, dus als we proberen de niet-statische methode uit de statische methode-compiler aan te roepen, zal dit klagen.
  • Ook kan de statische methode de niet-statische instantievariabele niet gebruiken. De statische methode kan niet verwijzen naar instantievariabelen van de klasse. De statische methode weet niet welke variabelewaarde van de instantie moet worden gebruikt.
  • Terwijl in het geval van niet-statische methoden ze een statisch sleutelwoord hebben samen met de naam van de methode en als we met niet-statische methoden willen werken, moeten we het object van die klasse maken omdat het alleen tot de klasse behoort waarin het is verklaard. Niet-statische methoden hebben gemakkelijk toegang tot elke statische en elke statische variabele zonder de instantie van klasse.

Om een ​​statische methode van een andere statische methode aan te roepen, kunnen we 'dit' trefwoord gebruiken.

Code:

class StaticMethodCallDemo (
static staticMethodOne() (
return 'Static method one is called from ';
)
static sttaicMethodTwo() (
return this.staticMethod() + ' static method two';
)
)
StaticMethodCallDemo.staticMethodOne();
StaticMethodCallDemo.sttaicMethodTwo();

Maar wat als we een statische methode willen noemen vanuit de niet-statische methode. Hiervoor kunnen we een van beide benaderingen gebruiken

1) classname.static_method_name (); : Door de klassenaam te gebruiken
2) this.constructor.static_method_name (); : Of door de eigenschap constructor te gebruiken.

Code:

class StaticMethodCallDemo2 (
constructor() (
console.log(StaticMethodCallDemo2.staticMethodOne());
// 'static method called using class name.'
console.log(this.constructor.staticMethodOne());
// 'static methed called using constructor property.'
)
static staticMethodOne() (
return 'static method has been called.';
)
)

JavaScript heeft ook de introductie van klassen in ES6, dus nu kunnen we de statische methode, constructors, super-calls naar parent en inheritance gebruiken die de interoperabiliteit voor de ontwikkelaar veel gemakkelijker maken. We kunnen dus een subklasse hebben naar een bovenliggende klasse en elke methode die we declareren in de bovenliggende klasse die ook beschikbaar is in de subklasse. Getter en setter accessors worden ook geïntroduceerd in ES5 en dit kan worden gebruikt met het statische trefwoord. Hieronder is het voorbeeld om te laten zien hoe dit te gebruiken met het statische trefwoord.

Code:

class Demo(
constructor(name)(
this.name = name
)
static get Leader()(
return new Demo(abc)
)
)

Voorbeelden van statische JavaScript-methode

Hier zijn enkele van de onderstaande voorbeelden van de statische JavaScript-methode:

Voorbeeld 1

Om de statische methode met dezelfde naam te tonen.

Code:



class SameNameDemo
(
static displayMsg()
(
return "static method with same name one"
)
static displayMsg()
(
return "static method with same name two"
)
)
document.writeln(SameNameDemo.displayMsg());

Output:

Voorbeeld 2

Voorbeeld om meer dan één statische methode aan te roepen.

Code:



class NoSameName
(
static displayMsg1()
(
return "static method one is called"
)
static displayMsg2()
(
return "static method two is called"
)
)
document.writeln(NoSameName.displayMsg1()+"
");
document.writeln(NoSameName.displayMsg2());

Output:

Voorbeeld 3

Om een ​​bericht weer te geven.

Code:



class Demo
(
static displayMsg()
(
return "static method is called"
)
)
document.writeln(Demo.displayMsg());

Output:

Voorbeeld 4

Een statische methode oproepen vanuit een niet-statische methode.

Code:



class Demo (
static displayMsg() (
return "calling static method from non static method"
)
showMsg() (
document.writeln(Demo.displayMsg()+"
");
)
)
var demo =new Demo();
demo.showMsg();

Output:

Voorbeeld 5

Een statische methode aanroepen vanuit de constructor.

Code:



class Demo (
constructor() (
document.writeln (Demo.displayMag()+"
");
document.writeln (this.constructor.displayMag());
)
static displayMag() (
return "calling static method from constructor."
)
)
var demo = new Demo();

Uitgang:

Conclusie

Dus in principe vereist de statische methode niet dat de instantie er toegang toe heeft. We hebben rechtstreeks toegang tot de instantie met de klassenaam waar ze bij horen. Bijvoorbeeld ClassName.Static-method-name-to-be = called ();

Aanbevolen artikelen

Dit is een handleiding voor de statische JavaScript-methode. Hier bespreken we de syntaxis, werking en voorbeelden van de statische JavaScript-methode. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie -

  1. JavaScript-evenementen
  2. Fouten in JavaScript
  3. JavaScript versus Ruby
  4. Recursieve functie in JavaScript