Introduktion til JavaScript-statisk metode

Statiske JavaScript-metoder bruges normalt til at oprette hjælpefunktioner. De introduceres i ES6 for den klassespecifikke metode til objektorienteret programmering i JavaScript.

For at erklære en statisk metode kan vi blot bruge statiske nøgleord med metodesignaturen. Den statiske metode kaldes ikke på forekomsten af ​​klassen, de får til at ringe direkte til klassen.

Så vi kan sige, at JavaScript giver os en statisk metode, der hører til klassen, men ikke med forekomsten af ​​klassen. Så som java kræver vi ikke en forekomst af klassen for at kalde den statiske metode også i JavaScript. Derfor hører statisk metode i JavaScript til selve klassen.

Syntaks:

static methodName()()

I JavaScript bruger vi også det statiske nøgleord til at definere enhver metode som en statisk metode. Vi skal bare bruge det statiske søgeord sammen med metodenavnet. Metodenavne kan være hvad som helst. Der er mange punkter relateret til dette statiske søgeord, lad os tjekke dem en efter en:

  • En klasse kan indeholde et vilkårligt antal statiske metoder. Med andre ord kan en klasse have mere end en statisk metode.
  • Den statiske metode kan være af ethvert navn som enhver anden metode eller funktion.
  • For at kalde en statisk metode fra en anden statisk metode kan vi bruge dette nøgleord.
  • Den statiske metode kan bruges til at oprette hjælpefunktioner.
  • Hvis vi i sådanne tilfælde vil kalde en statisk metode fra den ikke-statiske metode, kan vi ikke bruge dette nøgleord. Vi er nødt til at kalde den statiske metode ved klassens navn eller som konstruktørens egenskab.
  • Vi kan erklære mere end en statisk metode med samme navn, men hvis vi gør det, kalder JavaScript altid den sidste.

Et simpelt eksempel til at demonstrere syntaks for den statiske metode.

Kode:


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

I ovenstående eksempel kalder vi den statiske metode med klassens navn, der ikke opretter klassen forekomst. Brug kun klassens navn som en forekomst.

Hvordan statiske metoder fungerer i JavaScript?

  • Statisk metode er metoder, der kræver et objekt af en klasse at blive oprettet før, når de faktisk ringede. For at kalde dem er vi nødt til at oprette objektet for den klasse, hvori det er defineret. Den statiske metode får et opkald på to måder, hvor man bruger dette nøgleord et andet fra konstruktøren.
  • Statiske metoder kan ikke direkte kalde den ikke-statiske metode. On-statiske metoder bruger forekomstvariabel tilstand til at påvirke deres opførsel. Den statiske metode kan heller ikke se forekomstvariabeltilstanden, så hvis vi forsøger at kalde den ikke-statiske metode fra den statiske metodekompilator, klager det.
  • Den statiske metode kan heller ikke bruge den ikke-statiske forekomstvariabel. Den statiske metode kan ikke henvise til nogen forekomstvariabler i klassen. Den statiske metode ved ikke, hvilken instans variabel værdi, der skal bruges.
  • Mens der i tilfælde af ikke-statiske metoder de har et hvilket som helst statisk nøgleord sammen med metodenavnet, og hvis vi vil arbejde med ikke-statiske metoder, er vi nødt til at oprette objektet for den klasse, fordi det kun hører til klassen, hvori det erklæres. Ikke-statiske metoder kan nemt få adgang til enhver statisk og enhver statisk variabel uden forekomsten af ​​klasse.

For at kalde en statisk metode fra en anden statisk metode, kan vi bruge 'dette' nøgleord.

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 hvad nu hvis vi vil kalde en statisk metode fra den ikke-statiske metode. Til dette kan vi følge en af ​​de to fremgangsmåder

1) klassens navn.statisk_metodnavn (); : Ved at bruge klassens navn
2) this.constructor.static_method_name (); : Eller ved at bruge konstruktøren.

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å introduktionen af ​​klasser i ES6, så nu kan vi bruge den statiske metode, konstruktører, superopkald til forælder og arv, hvilket vil gøre interoperabiliteten meget lettere for udvikleren. Så vi kan have underklasse til en forældreklasse og enhver metode, som vi erklærer i forældreklassen, som også vil være tilgængelig i underklassen. Getter- og setter-accessorer introduceres også i ES5, og dette kan bruges med det statiske nøgleord. Nedenfor er eksemplet, der viser, hvordan man bruger dette med det statiske søgeord.

Kode:

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

Eksempler på JavaScript-statisk metode

Her er nogle af eksemplerne på javascript-statisk metode, der er givet nedenfor:

Eksempel 1

For at vise den statiske metode 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());

Produktion:

Eksempel 2

Eksempel til at kalde mere end 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());

Produktion:

Eksempel 3

Sådan vises en meddelelse.

Kode:



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

Produktion:

Eksempel 4

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

Produktion:

Eksempel 5

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

Output:

Konklusion

Så grundlæggende kræver ikke statisk metode, at forekomsten skal have adgang til dem, vi kan direkte få adgang til dem ved hjælp af klassens navn, inden de tilhører. For eksempel ClassName.Static-method-name-to-be = kaldet ();

Anbefalede artikler

Dette er en guide til JavaScript-statisk metode. Her diskuterer vi syntaks, arbejde og eksempler på javascript-statisk metode. Du kan også gennemgå vores andre foreslåede artikler for at lære mere -

  1. JavaScript-begivenheder
  2. Fejl i JavaScript
  3. JavaScript vs Ruby
  4. Rekursiv funktion i JavaScript

Kategori: