Uvod u JavaScript statičku metodu

JavaScript statičke metode se obično koriste za stvaranje uslužnih funkcija. Uvedeni su u ES6 za metodu specifičnu za klasu objektno orijentiranog programiranja u JavaScript-u.

Za deklariranje statičke metode možemo jednostavno koristiti statičku ključnu riječ s potpisom metode. Statička metoda se ne poziva na instancu klase koju čine da se pozivaju izravno na klasu.

Tako možemo reći da nam JavaScript pruža statičku metodu koja pripada klasi, ali ne i instancu klase. Kao i java, ne trebamo ni instancu klase da poziva statičku metodu u JavaScriptu. Stoga statička metoda u JavaScript-u pripada samoj klasi.

Sintaksa:

static methodName()()

U JavaScriptu također koristimo statičku ključnu riječ da bismo definirali bilo koju metodu kao statičku metodu. Trebamo koristiti statičku ključnu riječ zajedno s nazivom metode. Nazivi metoda mogu biti bilo što. Postoji mnogo točaka povezanih sa ovom statičnom ključnom riječi, provjerimo ih jednu po jednu:

  • Klasa može sadržavati bilo koji broj statičkih metoda. Drugim riječima, klasa može imati više statičkih metoda.
  • Statička metoda može biti bilo kojeg naziva poput bilo koje druge metode ili funkcije.
  • Za pozivanje statičke metode iz druge statičke metode možemo koristiti ovu ključnu riječ.
  • Statička metoda može se koristiti za stvaranje korisnih funkcija.
  • Ako želimo nazvati statičku metodu iz nestatičke metode u takvim slučajevima ne možemo koristiti ovu ključnu riječ. Statičku metodu moramo nazvati imenom klase ili kao svojstvo konstruktora.
  • Možemo deklarirati više statičkih metoda s istim nazivom, ali ako to učinimo, JavaScript uvijek poziva zadnji.

Jednostavan primjer za demonstriranje sintakse statičke metode.

Kodirati:


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

U gornjem primjeru pozivamo statičku metodu s nazivom klase, ne stvarajući instancu klase. Korištenje naziva klase samo kao instancije.

Kako statičke metode rade u JavaScript-u?

  • Statička metoda su metode za koje je potrebno da se predmet klase stvori prije nego što su ga stvarno pozvali. Da bismo ih nazvali, moramo stvoriti objekt klase u kojoj je definiran. Statička metoda dobiva poziv na dva načina, jedan koristi ovu ključnu riječ, a drugi od konstruktora.
  • Statičke metode ne mogu izravno nazvati nestaltičku metodu. Statičke metode koriste promjenjivo stanje instance da utječu na njihovo ponašanje. Statička metoda također ne može vidjeti stanje varijable instancije, pa ako pokušamo pozvati nestaltičku metodu iz prevoditelja statičke metode, žalit ćemo se.
  • Također, statička metoda ne može koristiti nestalnu varijablu instancije. Statička metoda ne može se odnositi na nijednu instancu varijabli klase. Statička metoda ne zna koju varijablu vrijednost instancije treba koristiti.
  • Dok u slučaju nestatičkih metoda oni imaju bilo koju statičku ključnu riječ zajedno s nazivom metode i ako želimo raditi s nestalnim metodama, tada moramo stvoriti objekt te klase jer on pripada klasi samo u kojoj proglašena je. Nestatičke metode mogu lako pristupiti bilo kojoj statičkoj i bilo kojoj statičkoj varijabli bez instance klase.

Kako bismo pozvali statičku metodu iz druge statičke metode, možemo koristiti ključnu riječ "ovaj".

Kodirati:

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

Ali što ako statičku metodu želimo nazvati nestatičkom metodom. Za to možemo ići s bilo kojim od dva pristupa

1) ime klase.static_method_name (); : Korištenjem naziva klase
2) this.constructor.static_method_name (); : Ili pomoću svojstva konstruktora.

Kodirati:

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 također ima uvođenje klase u ES6, tako da sada možemo koristiti statičku metodu, konstruktore, super pozive roditelju i nasljeđivanje što će interoperabilnost znatno olakšati programeru. Tako možemo imati podrazred nadređene klase i bilo koju metodu koju izjavimo u roditeljskoj klasi, a koja će biti dostupna i u podrazredu. Getter i setter pribor također su uvedeni u ES5 i to se može koristiti uz statičku ključnu riječ. Ispod je primjer kako pokazati kako se to koristi statičkom ključnom riječi.

Kodirati:

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

Primjeri JavaScript statičke metode

Evo nekoliko primjera statičke metode JavaScripta dane u nastavku:

Primjer 1

Za prikazivanje statičke metode s istim nazivom.

Kodirati:



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

Izlaz:

Primjer 2

Primjer za pozivanje više statičkih metoda.

Kodirati:



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

Izlaz:

Primjer 3

Za prikaz poruke.

Kodirati:



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

Izlaz:

Primjer 4

Pozivanje statičke metode iz nestatičke metode.

Kodirati:



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

Izlaz:

Primjer 5

Pozivanje statičke metode od konstruktora.

Kodirati:



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

Izlaz:

Zaključak

Dakle, statička metoda u osnovi ne zahtijeva instancu da im pristupimo, možemo im izravno pristupiti po nazivu klase kojoj pripadaju. Na primjer ClassName.Static-method-name-to-biti = call ();

Preporučeni članci

Ovo je vodič za JavaScript statičke metode. Ovdje smo raspravljali o sintaksi, radu i primjerima statičke metode JavaScripta. Možete i proći naše druge predložene članke da biste saznali više -

  1. JavaScript događanja
  2. Pogreške u JavaScript-u
  3. JavaScript u odnosu na Ruby
  4. Rekurzivna funkcija u JavaScript-u

Kategorija: