Úvod do statickej metódy JavaScript

Statické metódy JavaScriptu sa zvyčajne používajú na vytváranie pomocných funkcií. Uvádzajú sa v ES6 pre triedu špecifickú metódu objektovo orientovaného programovania v JavaScripte.

Na deklaráciu statickej metódy môžeme jednoducho použiť statické kľúčové slovo s podpisom metódy. Statická metóda sa nevyvoláva na inštancii triedy, ktorú majú zavolať priamo na triedu.

Môžeme teda povedať, že JavaScript nám poskytuje statickú metódu, ktorá patrí do triedy, ale nie do inštancie triedy. Podobne ako java nevyžadujeme, aby inštancia triedy volala aj statickú metódu v JavaScripte. Preto statická metóda v JavaScripte patrí do samotnej triedy.

syntaxe:

static methodName()()

V JavaScripte tiež používame statické kľúčové slovo na definovanie akejkoľvek metódy ako statickej metódy. Potrebujeme iba použiť statické kľúčové slovo spolu s názvom metódy. Názvy metód môžu byť čokoľvek. S týmto statickým kľúčovým slovom súvisí veľa bodov. Poďme ich skontrolovať jeden po druhom:

  • Trieda môže obsahovať ľubovoľný počet statických metód. Inými slovami, trieda môže mať viac ako jednu statickú metódu.
  • Statická metóda môže mať ľubovoľný názov ako akákoľvek iná metóda alebo funkcia.
  • Na volanie statickej metódy z inej statickej metódy môžeme použiť toto kľúčové slovo.
  • Statickú metódu je možné použiť na vytvorenie pomocných funkcií.
  • Ak chceme v takýchto prípadoch volať statickú metódu z nestatickej metódy, nemôžeme toto kľúčové slovo použiť. Statickú metódu musíme nazvať názvom triedy alebo ako vlastnosť konštruktora.
  • Môžeme deklarovať viac ako jednu statickú metódu s rovnakým menom, ale ak tak urobíme, JavaScript vždy volá poslednú.

Jednoduchý príklad na demonštráciu syntaxe statickej metódy.

kód:


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

Vo vyššie uvedenom príklade voláme statickú metódu, pričom názov triedy nevytvára inštanciu triedy. Názov triedy sa používa iba ako inštancia.

Ako fungujú statické metódy v JavaScripte?

  • Statická metóda je metóda, ktorá vyžaduje, aby sa objekt triedy vytvoril skôr, ako sa skutočne volá. Aby sme ich mohli volať, musíme vytvoriť objekt triedy, v ktorej je definovaný. Statická metóda získa volanie dvojakým spôsobom, ktorý použije toto kľúčové slovo, iné od konštruktora.
  • Statické metódy nemôžu priamo volať nestatickú metódu. Statické metódy používajú stav premennej inštancie na ovplyvnenie ich správania. Statická metóda tiež nemôže vidieť stav premennej inštancie, takže ak sa pokúsime zavolať nestatickú metódu z kompilátora statickej metódy, bude si sťažovať.
  • Statická metóda tiež nemôže použiť premennú nonstatickej inštancie. Statická metóda nemôže odkazovať na žiadne premenné inštancie triedy. Statická metóda nepozná hodnotu premennej ktorej inštancie.
  • Zatiaľ čo v prípade nestatických metód majú akékoľvek statické kľúčové slovo spolu s názvom metódy a ak chceme pracovať s nestatickými metódami, musíme vytvoriť objekt tejto triedy, pretože patrí do triedy iba v tom, v ktorom vyhlasuje sa. Nestatické metódy môžu ľahko pristupovať ku ktorejkoľvek statickej a statickej premennej bez inštancie triedy.

Aby sme mohli volať statickú metódu z inej statickej metódy, môžeme použiť kľúčové slovo „toto“.

kód:

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

Ale čo keď chceme volať statickú metódu z nestatickej metódy. Za týmto účelom môžeme ísť jedným z týchto dvoch prístupov

1) classname.static_method_name (); : Použitím názvu triedy
2) this.constructor.static_method_name (); : Alebo pomocou vlastnosti konstruktora.

kód:

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 tiež zavádza triedy v ES6, takže teraz môžeme využívať statickú metódu, konštruktory, super hovory na rodičov a dedičstvo, ktoré vývojárom uľahčia interoperabilitu. Môžeme teda mať podtriedu do nadradenej triedy a akúkoľvek metódu, ktorú deklarujeme v nadradenej triede a ktorá bude k dispozícii aj v podtriede. V ES5 sa tiež zavádzajú prístupové a nastavovacie prístupové prvky, ktoré sa dajú použiť so statickým kľúčovým slovom. Nižšie je uvedený príklad, ktorý ukazuje, ako sa dá použiť so statickým kľúčovým slovom.

kód:

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

Príklady statickej metódy JavaScript

Tu je niekoľko príkladov statickej metódy javascript uvedenej nižšie:

Príklad č. 1

Zobrazenie statickej metódy s rovnakým názvom.

kód:



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

Výkon:

Príklad č. 2

Príklad na volanie viac ako jednej statickej metódy.

kód:



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());

Výkon:

Príklad č. 3

Zobrazenie správy.

kód:



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

Výkon:

Príklad č. 4

Volanie statickej metódy z nestatickej metódy.

kód:



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

Výkon:

Príklad č. 5

Volanie statickej metódy od konštruktora.

kód:



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

Výkon :

záver

Takže v zásade statická metóda nevyžaduje prístup inštancie, môžeme k nim priamo pristupovať podľa názvu triedy, do ktorej patria. Napríklad ClassName.Static-method-name-to-be = nazvaný ();

Odporúčané články

Toto je sprievodca statickou metódou JavaScript. Tu diskutujeme syntax, fungovanie a príklady statickej metódy javascript. Viac informácií nájdete aj v ďalších navrhovaných článkoch -

  1. Udalosti JavaScriptu
  2. Chyby v JavaScripte
  3. JavaScript vs Ruby
  4. Rekurzívna funkcia v JavaScripte

Kategórie: