Uvod v JavaScript statične metode

Statične metode JavaScript se običajno uporabljajo za ustvarjanje uporabnih funkcij. Uvedeni so v ES6 za razredno specifično metodo za objektno usmerjeno programiranje v JavaScript.

Za razglasitev statične metode lahko preprosto uporabimo statično ključno besedo s podpisom metode. Statična metoda se ne prikliče na primer razreda, iz katerega so narejeni, da pokličejo neposredno na razred.

Torej lahko rečemo, da nam JavaScript daje statično metodo, ki pripada razredu, ne pa primerku razreda. Tako kot java, ne potrebujemo primerka razreda, da tudi v JavaScript pokliče statično metodo. Zato statična metoda v JavaScript pripada samemu razredu.

Sintaksa:

static methodName()()

V JavaScript-u uporabljamo tudi statično ključno besedo za opredelitev katere koli metode kot statične metode. Moramo uporabiti statično ključno besedo skupaj z imenom metode. Imena metod so lahko karkoli. Obstaja veliko točk, povezanih s to statično ključno besedo, preverimo jih eno za drugim:

  • Razred lahko vsebuje poljubno število statičnih metod. Z drugimi besedami, razred lahko ima več statičnih metod.
  • Statična metoda je lahko poljubnega imena, kot katera koli druga metoda ali funkcija.
  • Za klic statične metode iz druge statične metode lahko uporabimo to ključno besedo.
  • Za ustvarjanje uporabnih funkcij se lahko uporabi statična metoda.
  • Če želimo v takih primerih poklicati statično metodo iz nestatične metode, te ključne besede ne moremo uporabiti. Statično metodo moramo poklicati po imenu razreda ali kot lastnosti konstruktorja.
  • Izjavimo lahko več kot eno statično metodo z istim imenom, vendar v tem primeru JavaScript vedno pokliče zadnjo.

Preprost primer za prikaz skladnje statične metode.

Koda:


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

V zgornjem primeru kličemo statično metodo z imenom razreda in ne ustvarja primerka razreda. Uporaba imena razreda samo kot primerek.

Kako statične metode delujejo v JavaScript?

  • Statična metoda so metode, ki zahtevajo, da se predmet razreda ustvari prej, ko so ga dejansko poklicali. Če jih želimo poklicati, moramo ustvariti predmet razreda, v katerem je opredeljen. Statična metoda prejme klic na dva načina, eden pa uporabi to ključno besedo drug od konstruktorja.
  • Statične metode ne morejo neposredno poklicati nestatične metode. Statične metode uporabljajo spremenljivo stanje primerkov, da vplivajo na njihovo vedenje. Statična metoda prav tako ne more videti stanja spremenljivke primerka, zato če skušamo poklicati nestalno metodo iz prevajalnika statičnih metod, se bomo pritožili.
  • Prav tako statična metoda ne more uporabiti nestalne spremenljivke primerka. Statična metoda se ne more sklicevati na nobene primerke spremenljivk razreda. Statična metoda ne ve, katero vrednost spremenljivke primerka uporabiti.
  • Ker v primeru nestatičnih metod vsebujejo katero koli statično ključno besedo skupaj z imenom metode, in če želimo delati z nestatičnimi metodami, moramo ustvariti objekt tega razreda, ker spada le v razred, v katerem je razglašen. Nestatične metode lahko brez dostopa do razreda enostavno dostopajo do katere koli statične in katere koli statične spremenljivke.

Če želite poklicati statično metodo iz druge statične metode, lahko uporabimo ključno besedo 'to'.

Koda:

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

Kaj pa, če želimo iz nestatične metode poklicati statično metodo. Za to se lahko lotimo katerega koli od obeh pristopov

1) ime-imena.statičnega_metara (); : Z uporabo imena razreda
2) this.constructor.static_method_name (); : Ali z uporabo lastnosti konstruktorja.

Koda:

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 ima tudi uvedbo razredov v ES6, tako da lahko zdaj uporabimo statično metodo, konstruktorje, super klice staršev in dedovanje, kar bo interoperabilnost precej olajšalo za razvijalca. Tako lahko imamo podrazred v nadrejenem razredu in katero koli metodo, ki jo izjavimo v nadrejenem razredu, ki bo na voljo tudi v podrazredu. V ES5 so predstavljeni tudi dodatki za getter in setter, kar je mogoče uporabiti pri statični ključni besedi. Spodaj je primer, kako pokazati, kako to uporabiti s statično ključno besedo.

Koda:

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

Primeri statične metode JavaScript

Tu je nekaj primerov statične metode javascripta, danih spodaj:

Primer # 1

Za prikaz statične metode z istim imenom.

Koda:



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

Izhod:

Primer # 2

Primer klicanja več kot ene statične metode.

Koda:



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

Izhod:

Primer # 3

Za prikaz sporočila.

Koda:



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

Izhod:

Primer št. 4

Klicanje statične metode iz nestatične metode.

Koda:



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

Izhod:

Primer št. 5

Klicanje statične metode iz konstruktorja.

Koda:



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

Izhod:

Zaključek

Tako v osnovi statična metoda ne zahteva, da instanca dostopa do njih, lahko do njih neposredno dostopimo po imenu razreda znotraj katerega pripadajo. Na primer ClassName.Static-method-name-to-be = call ();

Priporočeni članki

To je vodnik za statično metodo JavaScript. Tukaj razpravljamo o sintaksi, delu in primerih statične metode javascripta. Če želite izvedeti več, lahko preberete tudi druge naše predlagane članke -

  1. Dogodki JavaScript
  2. Napake v JavaScript
  3. JavaScript v primerjavi z Ruby
  4. Rekurzivna funkcija v JavaScript