Introduktion till JavaScript-statisk metod

Statiska JavaScript-metoder används vanligtvis för att skapa verktygsfunktioner. De introduceras i ES6 för den klassspecifika metoden för objektorienterad programmering i JavaScript.

För att förklara en statisk metod kan vi helt enkelt använda statiska nyckelord med metodsignaturen. Den statiska metoden kallas inte för instansen av klassen de görs för att ringa direkt på klassen.

Så vi kan säga att JavaScript ger oss en statisk metod som tillhör klassen men inte med klassens instans. Så som java kräver vi inte en instans av klassen för att även kalla den statiska metoden i JavaScript. Därför tillhör statisk metod i JavaScript själva klassen.

Syntax:

static methodName()()

I JavaScript använder vi också det statiska nyckelordet för att definiera alla metoder som en statisk metod. Vi behöver bara använda det statiska nyckelordet tillsammans med metodnamnet. Metodnamn kan vara vad som helst. Det finns många punkter relaterade till detta statiska nyckelord, låt oss kontrollera dem en efter en:

  • En klass kan innehålla valfritt antal statiska metoder. Med andra ord kan en klass ha mer än en statisk metod.
  • Den statiska metoden kan ha valfritt namn som alla andra metoder eller funktioner.
  • För att kalla en statisk metod från en annan statisk metod kan vi använda det här nyckelordet.
  • Den statiska metoden kan användas för att skapa verktygsfunktioner.
  • Om vi ​​i sådana fall vill kalla en statisk metod från den icke-statiska metoden, kan vi inte använda detta nyckelord. Vi måste kalla den statiska metoden med klassnamnet eller som konstruktörens egendom.
  • Vi kan förklara mer än en statisk metod med samma namn, men om vi gör det kallar JavaScript alltid den sista.

Ett enkelt exempel för att visa syntaxen för den statiska metoden.

Koda:


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

I exemplet ovan kallar vi den statiska metoden med klassnamnet som inte skapar klassens instans. Använd endast klassnamn som en instans.

Hur fungerar statiska metoder i JavaScript?

  • Statisk metod är metoder som kräver att ett klassobjekt skapas innan de faktiskt ringde. För att kalla dem måste vi skapa objektet för den klass där den definieras. Den statiska metoden får ett samtal på två sätt, ett med det här sökordet ett annat från konstruktören.
  • Statiska metoder kan inte direkt kalla den icke-statiska metoden. On-statiska metoder använder instansvariabeltillstånd för att påverka deras beteende. Den statiska metoden kan inte heller se instansen variabeltillstånd, så om vi försöker ringa den icke-statiska metoden från den statiska metoden kommer kompilatorn att klaga.
  • Den statiska metoden kan inte heller använda den icke-statiska instansvariabeln. Den statiska metoden kan inte hänvisa till några instansvariabler i klassen. Den statiska metoden vet inte vilken instans variabla värde som ska användas.
  • När det gäller icke-statiska metoder har de något statiskt nyckelord tillsammans med metodnamnet och om vi vill arbeta med icke-statiska metoder måste vi skapa objektet för den klassen eftersom det bara tillhör klassen där det förklaras. Icke-statiska metoder kan enkelt komma åt alla statiska och alla statiska variabler utan klassinstans.

För att kalla en statisk metod från en annan statisk metod kan vi använda "detta" nyckelord.

Koda:

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

Men vad händer om vi vill kalla en statisk metod från den icke-statiska metoden. För detta kan vi gå med någon av de två strategierna

1) klassnamn.statisk_metodnamn (); : Genom att använda klassnamnet
2) this.constructor.static_method_name (); : Eller genom att använda konstruktörens egendom.

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 har också introduktionen av klasser i ES6 så nu kan vi använda den statiska metoden, konstruktörer, superanrop till förälder och arv som kommer att göra interoperabiliteten mycket lättare för utvecklaren. Så vi kan ha underklass till en förälderklass och alla metoder som vi förklarar i förälderklassen som också finns i underklassen. Getter- och setter-accessorer introduceras också i ES5 och detta kan användas med det statiska nyckelordet. Nedan är exemplet för att visa hur man använder detta med det statiska nyckelordet.

Koda:

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

Exempel på JavaScript-statisk metod

Här är några av exemplen på javascript-statisk metod som ges nedan:

Exempel 1

För att visa den statiska metoden med samma namn.

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

Produktion:

Exempel 2

Exempel för att kalla mer än en statisk metod.

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

Produktion:

Exempel 3

För att visa ett meddelande.

Koda:



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

Produktion:

Exempel 4

Anropa en statisk metod från en icke-statisk metod.

Koda:



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

Produktion:

Exempel 5

Anropar en statisk metod från konstruktören.

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

Utgång:

Slutsats

Så i grund och botten kräver inte statisk metod instansen för att få åtkomst till dem, vi kan direkt komma åt dem med klassnamnet inom dem tillhör. Till exempel ClassName.Static-method-name-to-be = kallas ();

Rekommenderade artiklar

Detta är en guide till JavaScript Static Method. Här diskuterar vi syntax, arbete och exempel på javascript statisk metod. Du kan också gå igenom våra andra föreslagna artiklar för att lära dig mer -

  1. JavaScript-händelser
  2. Fel i JavaScript
  3. JavaScript vs Ruby
  4. Rekursiv funktion i JavaScript

Kategori: