Introduksjon til JavaScript Static Method

Statiske JavaScript-metoder brukes vanligvis for å opprette nyttefunksjoner. De er introdusert i ES6 for den klassespesifikke metoden for objektorientert programmering i JavaScript.

For å erklære en statisk metode kan vi ganske enkelt bruke statiske nøkkelord med metodesignaturen. Den statiske metoden kalles ikke på forekomsten av klassen de blir laget til å ringe direkte på klassen.

Så vi kan si at JavaScript gir oss en statisk metode som hører til klassen, men ikke med forekomsten av klassen. Så som java trenger vi ikke en forekomst av klassen for å kalle den statiske metoden i JavaScript også. Derfor tilhører statisk metode i JavaScript selve klassen.

syntaks:

static methodName()()

I JavaScript bruker vi også det statiske nøkkelordet til å definere enhver metode som en statisk metode. Vi trenger bare å bruke det statiske nøkkelordet sammen med metodenavnet. Metode navn kan være hva som helst. Det er mange punkter relatert til dette statiske nøkkelordet, la oss sjekke dem én etter én:

  • En klasse kan inneholde et hvilket som helst antall statiske metoder. Med andre ord, en klasse kan ha mer enn en statisk metode.
  • Den statiske metoden kan være av et hvilket som helst navn som enhver annen metode eller funksjon.
  • For å kalle en statisk metode fra en annen statisk metode, kan vi bruke dette nøkkelordet.
  • Den statiske metoden kan brukes til å lage nyhetsfunksjoner.
  • Hvis vi i slike tilfeller vil kalle en statisk metode fra den ikke-statiske metoden, kan vi ikke bruke dette nøkkelordet. Vi må kalle den statiske metoden med klassens navn eller som konstruktørens eiendom.
  • Vi kan erklære mer enn en statisk metode med samme navn, men hvis vi gjør det, kaller JavaScript alltid den siste.

Et enkelt eksempel for å demonstrere syntaks for den statiske metoden.

Kode:


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

I eksemplet over kaller vi den statiske metoden med klassens navn og oppretter ikke forekomsten av klassen. Bruker bare klassens navn som forekomst.

Hvordan statiske metoder fungerer i JavaScript?

  • Statisk metode er metoder som krever et objekt av en klasse for å bli opprettet før når de faktisk ringte. For å kalle dem må vi lage objektet for klassen den er definert i. Den statiske metoden får en samtale på to måter, en bruker dette nøkkelordet et annet fra konstruktøren.
  • Statiske metoder kan ikke direkte kalle den ikke-statiske metoden. On-statiske metoder bruker forekomstvariabel tilstand for å påvirke deres oppførsel. Den statiske metoden kan heller ikke se forekomstvariabeltilstanden, så hvis vi prøver å kalle den ikke-statiske metoden fra den statiske metoden, vil kompilatoren klage.
  • Den statiske metoden kan heller ikke bruke den ikke-statiske forekomstvariabelen. Den statiske metoden kan ikke referere til noen forekomstvariabler i klassen. Den statiske metoden vet ikke hvilken instans variabelverdi som skal brukes.
  • Mens det gjelder ikke-statiske metoder de har noen statiske nøkkelord sammen med metodenavnet, og hvis vi ønsker å jobbe med ikke-statiske metoder, må vi lage objektet til den klassen fordi det bare hører til klassen der det er erklært. Ikke-statiske metoder kan enkelt få tilgang til statiske og statiske variabler uten forekomst av klasse.

For å kalle en statisk metode fra en annen statisk metode, kan vi bruke "dette" nøkkelordet.

Kode:

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

Men hva om vi vil kalle en statisk metode fra den ikke-statiske metoden. For dette kan vi gå med en av de to tilnærmingene

1) klassens navn.statisk_metodnavn (); : Ved å bruke klassens navn
2) this.constructor.static_method_name (); : Eller ved å bruke konstruktoreiendommen.

Kode:

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 har også introduksjon av klasser i ES6, så nå kan vi bruke den statiske metoden, konstruktører, superanrop til foreldre og arv som vil gjøre interoperabiliteten mye enklere for utvikleren. Så vi kan ha underklasse til en foreldreklasse og enhver metode som vi erklærer i foreldreklassen som også vil være tilgjengelig i underklassen. Getter- og setter-accessorer blir også introdusert i ES5, og dette kan brukes med det statiske nøkkelordet. Nedenfor er eksemplet som viser hvordan du bruker dette med det statiske nøkkelordet.

Kode:

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

Eksempler på JavaScript Static Method

Her er noen av eksemplene på javascript-statisk metode gitt nedenfor:

Eksempel 1

For å vise den statiske metoden med samme navn.

Kode:



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

Produksjon:

Eksempel 2

Eksempel for å kalle mer enn en statisk metode.

Kode:



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

Produksjon:

Eksempel 3

For å vise en melding.

Kode:



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

Produksjon:

Eksempel 4

Å kalle en statisk metode fra en ikke-statisk metode.

Kode:



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

Produksjon:

Eksempel 5

Å ringe en statisk metode fra konstruktøren.

Kode:



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

Utgang:

Konklusjon

Så i utgangspunktet krever ikke statisk metode forekomsten for å få tilgang til dem, vi kan direkte få tilgang til dem med klassens navn innenfor. For eksempel ClassName.Static-method-name-to-be = kalt ();

Anbefalte artikler

Dette er en guide til JavaScript Static Method. Her diskuterer vi syntaks, arbeid og eksempler på javascript statisk metode. Du kan også gå gjennom andre foreslåtte artikler for å lære mer -

  1. JavaScript-hendelser
  2. Feil i JavaScript
  3. JavaScript vs Ruby
  4. Rekursiv funksjon i JavaScript