Úvod do statické metody JavaScript

Statické metody JavaScriptu se obvykle používají k vytváření funkčních funkcí. Jsou zavedeny v ES6 pro třídu specifickou metodu objektově orientovaného programování v JavaScriptu.

Pro deklaraci statické metody můžeme jednoduše použít statické klíčové slovo s podpisem metody. Statická metoda není vyvolána na instanci třídy, kterou mají volat přímo na třídu.

Můžeme tedy říci, že JavaScript nám poskytuje statickou metodu, která patří do třídy, ale ne s instancí třídy. Podobně jako java nevyžadujeme, aby instance třídy volala také statickou metodu v JavaScriptu. Statická metoda v JavaScriptu tedy patří do samotné třídy.

Syntax:

static methodName()()

V JavaScriptu také pomocí statického klíčového slova definujeme jakoukoli metodu jako statickou metodu. Potřebujeme pouze použít statické klíčové slovo spolu s názvem metody. Názvy metod mohou být cokoli. S tímto statickým klíčovým klíčovým slovem souvisí mnoho bodů: pojďme je zkontrolovat jeden po druhém:

  • Třída může obsahovat libovolný počet statických metod. Jinými slovy, třída může mít více než jednu statickou metodu.
  • Statická metoda může mít libovolný název jako jakákoli jiná metoda nebo funkce.
  • K volání statické metody z jiné statické metody můžeme použít toto klíčové slovo.
  • Statickou metodu lze použít k vytvoření pomocných funkcí.
  • Pokud v takových případech chceme zavolat statickou metodu z nestatické metody, nemůžeme toto klíčové slovo použít. Statickou metodu musíme nazvat názvem třídy nebo jako vlastnost konstruktoru.
  • Můžeme deklarovat více než jednu statickou metodu se stejným názvem, ale pokud tak učiníme, JavaScript vždy volá poslední.

Jednoduchý příklad pro demonstraci syntaxe statické metody.

Kód:


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

Ve výše uvedeném příkladu voláme statickou metodu s názvem třídy, který nevytváří instanci třídy. Použití názvu třídy pouze jako instance.

Jak fungují statické metody v JavaScriptu?

  • Statická metoda jsou metody, které vyžadují, aby byl objekt třídy vytvořen dříve, než skutečně zavolali. Abychom je mohli nazvat, musíme vytvořit objekt třídy, ve které je definován. Statická metoda získá volání dvěma způsoby, jedno s použitím tohoto klíčového slova, jiné od konstruktoru.
  • Statické metody nemohou přímo volat nestatickou metodu. Statické metody používají stav proměnné instance k ovlivnění jejich chování. Statická metoda také nemůže vidět stav proměnné instance, takže pokud se pokusíme zavolat nestatickou metodu z kompilátoru statické metody, bude si stěžovat.
  • Statická metoda také nemůže použít proměnnou nonstatické instance. Statická metoda nemůže odkazovat na žádné proměnné instance třídy. Statická metoda neví, jaká proměnná hodnota instance se má použít.
  • Zatímco v případě nestatických metod mají nějaké statické klíčové slovo spolu s názvem metody a pokud chceme pracovat s nestatickými metodami, musíme vytvořit objekt této třídy, protože patří do třídy pouze ve které to je deklarováno. Nestatické metody mohou snadno přistupovat k jakékoli statické a jakékoli statické proměnné bez instance třídy.

K vyvolání statické metody z jiné statické metody můžeme použít klíč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 co když chceme volat statickou metodu z nestatické metody. K tomu můžeme jít jedním z těchto dvou přístupů

1) classname.static_method_name (); : Pomocí názvu třídy
2) this.constructor.static_method_name (); : Nebo použitím vlastnosti konstruktoru.

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 také zavádí třídy v ES6, takže nyní můžeme využít statickou metodu, konstruktory, super volání rodičů a dědičnost, která vývojářům usnadní interoperabilitu. Můžeme tedy mít podtřídu do nadřazené třídy a jakoukoli metodu, kterou deklarujeme v nadřazené třídě, která bude dostupná i v podtřídě. V ES5 jsou také představeny přístupové a nastavovací přístupové prvky, které lze použít se statickým klíčovým slovem. Níže je uveden příklad, jak to u statického klíčového slova použít.

Kód:

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

Příklady statické metody JavaScriptu

Zde je několik příkladů statické metody javascript uvedené níže:

Příklad č. 1

Zobrazení statické metody se stejným názvem.

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ýstup:

Příklad č. 2

Příklad volání více než jedné statické metody.

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ýstup:

Příklad č. 3

Zobrazení zprávy.

Kód:



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

Výstup:

Příklad č. 4

Volání statické metody z nestatické metody.

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ýstup:

Příklad č. 5

Volání statické metody z konstruktoru.

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ýstup :

Závěr

Takže v podstatě statická metoda nevyžaduje přístup k instanci, můžeme k nim přímo přistupovat podle názvu třídy, do které patří. Například ClassName.Static-method-name-to-be = nazývá ();

Doporučené články

Toto je průvodce statickou metodou JavaScript. Zde diskutujeme syntaxi, práci a příklady statické metody javascript. Další informace naleznete také v dalších navrhovaných článcích -

  1. Události JavaScriptu
  2. Chyby v JavaScriptu
  3. JavaScript vs Ruby
  4. Rekurzivní funkce v JavaScriptu

Kategorie: