Introducere în metoda statică JavaScript

Metodele statice JavaScript sunt utilizate în general pentru a crea funcții de utilitate. Sunt introduse în ES6 pentru metoda specifică clasei de programare orientată pe obiect în JavaScript.

Pentru a declara o metodă statică, putem utiliza pur și simplu un cuvânt cheie static cu semnătura metodei. Metoda statică nu este apelată la instanța de clasă, pentru a apela direct la clasă.

Deci, putem spune că JavaScript ne oferă o metodă statică care aparține clasei, dar nu cu instanța clasei. Deci, ca și Java, nu avem nevoie de o instanță a clasei pentru a apela și metoda statică în JavaScript. Prin urmare, metoda statică din JavaScript aparține clasei în sine.

Sintaxă:

static methodName()()

De asemenea, în JavaScript folosim cuvântul cheie static pentru a defini orice metodă ca o metodă statică. Trebuie doar să folosim cuvântul cheie static împreună cu numele metodei. Numele metodei pot fi orice. Există multe puncte legate de acest cuvânt cheie static, să le verificăm unul câte unul:

  • O clasă poate conține orice număr de metode statice. Cu alte cuvinte, o clasă poate avea mai multe metode statice.
  • Metoda statică poate fi de orice nume ca orice altă metodă sau funcție.
  • Pentru a apela o metodă statică dintr-o altă metodă statică, putem utiliza acest cuvânt cheie.
  • Metoda statică poate fi utilizată pentru a crea funcții de utilitate.
  • Dacă dorim să apelăm la o metodă statică din metoda nestatică în astfel de cazuri, nu putem utiliza acest cuvânt cheie. Trebuie să apelăm la metoda statică după numele clasei sau ca proprietate a constructorului.
  • Putem declara mai multe metode statice cu același nume, dar dacă facem asta, JavaScript apelează întotdeauna la ultima.

Un exemplu simplu pentru a demonstra sintaxa metodei statice.

Cod:


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

În exemplul de mai sus, apelăm la metoda statică cu numele clasei care nu creează instanța clasei. Folosind numele clasei doar ca o instanță.

Cum funcționează metodele statice în JavaScript?

  • Metoda statică sunt metode care necesită ca un obiect al unei clase să fie creat înainte de apelul efectiv. Pentru a le numi trebuie să creăm obiectul clasei în care este definită. Metoda statică primește un apel în două moduri unul folosind acest cuvânt cheie altul de la constructor.
  • Metodele statice nu pot apela direct la metoda nonstatică. Metodele on-static folosesc starea variabilă de instanță pentru a le afecta comportamentul. De asemenea, metoda statică nu poate vedea starea variabilei de instanță, așa că dacă încercăm să apelăm la metoda nestatică de la compilatorul de metode statice se va plânge.
  • De asemenea, metoda statică nu poate utiliza variabila de instanță nestatică. Metoda statică nu se poate referi la nicio variabilă de instanță a clasei. Metoda statică nu știe ce valoare variabilă a instanței trebuie să folosească.
  • Întrucât în ​​cazul metodelor nestatice, ele au orice cuvânt cheie static, împreună cu numele metodei și dacă vrem să lucrăm cu metode nestatice, atunci trebuie să creăm obiectul clasei respective, deoarece aparține clasei numai în care este declarat. Metodele nestatice pot accesa cu ușurință orice variabilă statică și orice statică fără instanța de clasă.

Pentru a apela o metodă statică dintr-o altă metodă statică, putem utiliza cuvântul cheie „acest”.

Cod:

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

Dar dacă vrem să apelăm la o metodă statică din metoda nestatică. Pentru aceasta, putem merge cu oricare dintre cele două abordări

1) nume de clasă.static_method_name (); : Utilizând numele clasei
2) this.constructor.static_method_name (); : Sau folosind proprietatea constructorului.

Cod:

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 are, de asemenea, introducerea de clase în ES6, astfel încât acum putem utiliza metoda statică, constructori, super-apeluri la părinți și moștenire, ceea ce va face interoperabilitatea mult mai ușoară pentru dezvoltator. Deci, putem avea subclase pentru o clasă părinte și orice metodă pe care o declaram în clasa părinte, care va fi disponibilă și în subclasă. Accesorii Getter și Setter sunt de asemenea introduse în ES5 și acest lucru poate fi utilizat cu cuvântul cheie static. Mai jos este prezentat exemplul pentru a arăta cum să utilizați acest lucru cu cuvântul cheie static.

Cod:

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

Exemple de metoda statică JavaScript

Iată câteva dintre exemplele metodei statice javascript date mai jos:

Exemplul # 1

Pentru a afișa metoda statică cu același nume.

Cod:



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

ieşire:

Exemplul # 2

Exemplu pentru a apela mai multe metode statice.

Cod:



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

ieşire:

Exemplul # 3

Pentru a afișa un mesaj.

Cod:



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

ieşire:

Exemplul # 4

Apelarea unei metode statice dintr-o metodă nestatică.

Cod:



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

ieşire:

Exemplul # 5

Apelarea unei metode statice de la constructor.

Cod:



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

Rezultat:

Concluzie

Deci, practic, metoda statică nu necesită ca instanța să le acceseze, le putem accesa direct cu numele clasei din cadrul căruia aparțin. De exemplu ClassName.Static-method-name-to-be = denumit ();

Articole recomandate

Acesta este un ghid pentru metoda statică JavaScript. Aici discutăm sintaxa, lucrări și exemple de metodă statică javascript. Puteți parcurge și alte articole sugerate pentru a afla mai multe -

  1. Evenimente JavaScript
  2. Erori în JavaScript
  3. JavaScript vs Ruby
  4. Funcție recursivă în JavaScript