Wprowadzenie do metody statycznej JavaScript

Metody statyczne JavaScript są zwykle używane do tworzenia funkcji narzędziowych. Zostały one wprowadzone w ES6 dla specyficznej dla klasy metody programowania obiektowego w JavaScript.

Aby zadeklarować metodę statyczną, możemy po prostu użyć słowa kluczowego static z podpisem metody. Metoda statyczna nie jest wywoływana w instancji klasy, do której wywoływania bezpośrednio w klasie.

Możemy więc powiedzieć, że JavaScript zapewnia nam metodę statyczną, która należy do klasy, ale nie z instancją klasy. Tak jak java, nie wymagamy od instancji klasy wywołania metody statycznej również w JavaScript. Stąd metoda statyczna w JavaScript należy do samej klasy.

Składnia:

static methodName()()

W JavaScript również używamy słowa kluczowego static, aby zdefiniować dowolną metodę jako metodę statyczną. Musimy tylko użyć słowa kluczowego static wraz z nazwą metody. Nazwy metod mogą być dowolne. Istnieje wiele punktów związanych z tym statycznym słowem kluczowym, sprawdźmy je jeden po drugim:

  • Klasa może zawierać dowolną liczbę metod statycznych. Innymi słowy, klasa może mieć więcej niż jedną metodę statyczną.
  • Metoda statyczna może mieć dowolną nazwę, jak każda inna metoda lub funkcja.
  • Aby wywołać metodę statyczną z innej metody statycznej, możemy użyć tego słowa kluczowego.
  • Do tworzenia funkcji narzędziowych można użyć metody statycznej.
  • Jeśli chcemy wywołać metodę statyczną z metody niestatycznej, w takich przypadkach nie możemy użyć tego słowa kluczowego. Musimy wywołać metodę statyczną według nazwy klasy lub jako właściwości konstruktora.
  • Możemy zadeklarować więcej niż jedną metodę statyczną o tej samej nazwie, ale jeśli to zrobimy, JavaScript zawsze wywołuje ostatnią.

Prosty przykład do zademonstrowania składni metody statycznej.

Kod:


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

W powyższym przykładzie wywołujemy metodę statyczną z nazwą klasy, która nie tworzy instancji klasy. Używanie nazwy klasy tylko jako instancji.

Jak działają metody statyczne w JavaScript?

  • Metoda statyczna to metoda, która wymaga utworzenia obiektu klasy przed jego faktycznym wywołaniem. Aby je wywołać, musimy utworzyć obiekt klasy, w której jest zdefiniowany. Metoda statyczna jest wywoływana na dwa sposoby, jeden za pomocą tego słowa kluczowego drugi z konstruktora.
  • Metody statyczne nie mogą bezpośrednio wywoływać metody niestatycznej. Metody statyczne wykorzystują stan zmiennej instancji, aby wpływać na ich zachowanie. Metoda statyczna również nie widzi stanu zmiennej instancji, więc jeśli spróbujemy wywołać metodę niestatyczną z kompilatora metod statycznych, narzeka.
  • Ponadto metoda statyczna nie może używać niestatycznej zmiennej instancji. Metoda statyczna nie może odwoływać się do zmiennych instancji klasy. Metoda statyczna nie wie, której wartości zmiennej instancji należy użyć.
  • Podczas gdy w przypadku metod niestatycznych mają one jakieś słowo kluczowe statyczne wraz z nazwą metody, a jeśli chcemy pracować z metodami niestatycznymi, musimy utworzyć obiekt tej klasy, ponieważ należy ona do klasy, w której jest zadeklarowane. Metody niestatyczne mogą łatwo uzyskać dostęp do dowolnej zmiennej statycznej i dowolnej zmiennej statycznej bez wystąpienia klasy.

Aby wywołać metodę statyczną z innej metody statycznej, możemy użyć słowa kluczowego „this”.

Kod:

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, jeśli chcemy wywołać metodę statyczną z metody niestatycznej. W tym celu możemy zastosować jedno z dwóch podejść

1) classname.static_method_name (); : Używając nazwy klasy
2) this.constructor.static_method_name (); : Lub za pomocą właściwości konstruktora.

Kod:

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 ma również wprowadzenie klas w ES6, dzięki czemu możemy teraz korzystać z metody statycznej, konstruktorów, super wywołań do rodzica i dziedziczenia, które znacznie ułatwią programistę. Możemy więc mieć podklasę do klasy nadrzędnej i dowolną metodę, którą zadeklarujemy w klasie nadrzędnej, która będzie dostępna również w tej podklasie. Getter i setter akcesory są również wprowadzone w ES5 i można tego używać ze słowem kluczowym static. Poniżej znajduje się przykład pokazujący, jak używać tego ze słowem kluczowym static.

Kod:

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

Przykłady metody statycznej JavaScript

Oto niektóre z poniższych przykładów statycznej metody javascript:

Przykład 1

Aby wyświetlić metodę statyczną o tej samej nazwie.

Kod:



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

Wynik:

Przykład nr 2

Przykład wywołania więcej niż jednej metody statycznej.

Kod:



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

Wynik:

Przykład nr 3

Aby wyświetlić wiadomość.

Kod:



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

Wynik:

Przykład 4

Wywołanie metody statycznej z metody niestatycznej.

Kod:



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

Wynik:

Przykład 5

Wywołanie metody statycznej z konstruktora.

Kod:



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

Wynik :

Wniosek

Tak więc w zasadzie metoda statyczna nie wymaga instancji, aby uzyskać do nich dostęp, możemy uzyskać do nich bezpośredni dostęp poprzez nazwę klasy, do której należą. Na przykład ClassName.Static-method-name-to-be = wywoływana ();

Polecane artykuły

Jest to przewodnik po JavaScript Static Method. Tutaj omawiamy składnię, działanie i przykłady statycznej metody javascript. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -

  1. Wydarzenia JavaScript
  2. Błędy w JavaScript
  3. JavaScript vs Ruby
  4. Funkcja rekurencyjna w JavaScript