Introduzione al metodo statico JavaScript

I metodi statici JavaScript vengono generalmente utilizzati per creare funzioni di utilità. Sono introdotti in ES6 per il metodo specifico della classe per la programmazione orientata agli oggetti in JavaScript.

Per dichiarare un metodo statico possiamo semplicemente usare una parola chiave statica con la firma del metodo. Il metodo statico non viene chiamato sull'istanza della classe che viene chiamato direttamente sulla classe.

Quindi possiamo dire che JavaScript ci fornisce un metodo statico che appartiene alla classe ma non con l'istanza della classe. Quindi, come java, non è necessario che un'istanza della classe chiami anche il metodo statico in JavaScript. Quindi il metodo statico in JavaScript appartiene alla classe stessa.

Sintassi:

static methodName()()

In JavaScript utilizziamo anche la parola chiave statica per definire qualsiasi metodo come metodo statico. Dobbiamo solo usare la parola chiave statica insieme al nome del metodo. I nomi dei metodi possono essere qualsiasi cosa. Esistono molti punti relativi a questa parola chiave statica, controlliamoli uno per uno:

  • Una classe può contenere qualsiasi numero di metodi statici. In altre parole, una classe può avere più di un metodo statico.
  • Il metodo statico può avere qualsiasi nome come qualsiasi altro metodo o funzione.
  • Per chiamare un metodo statico da un altro metodo statico possiamo usare questa parola chiave.
  • Il metodo statico può essere utilizzato per creare funzioni di utilità.
  • Se vogliamo chiamare un metodo statico dal metodo non statico in questi casi, non possiamo usare questa parola chiave. Dobbiamo chiamare il metodo statico con il nome della classe o come proprietà del costruttore.
  • Possiamo dichiarare più di un metodo statico con lo stesso nome, ma se lo facciamo JavaScript chiama sempre l'ultimo.

Un semplice esempio per dimostrare la sintassi del metodo statico.

Codice:


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

Nell'esempio sopra, stiamo chiamando il metodo statico con il nome della classe che non crea l'istanza della classe. Utilizzo del nome della classe solo come istanza.

Come funzionano i metodi statici in JavaScript?

  • I metodi statici sono metodi che richiedono la creazione di un oggetto di una classe prima della loro effettiva chiamata. Per chiamarli dobbiamo creare l'oggetto della classe in cui è definito. Il metodo statico riceve una chiamata in due modi: uno utilizza questa parola chiave, un altro dal costruttore.
  • I metodi statici non possono chiamare direttamente il metodo non statico. I metodi on-static utilizzano lo stato variabile di istanza per influenzare il loro comportamento. Inoltre, il metodo statico non può vedere lo stato della variabile di istanza, quindi se proviamo a chiamare il metodo non statico dal compilatore del metodo statico si lamenterà.
  • Inoltre, il metodo statico non può utilizzare la variabile di istanza non statica. Il metodo statico non può fare riferimento a nessuna variabile di istanza della classe. Il metodo statico non sa quale valore variabile dell'istanza utilizzare.
  • Considerando che nel caso di metodi non statici hanno una parola chiave statica insieme al nome del metodo e se vogliamo lavorare con metodi non statici, allora dobbiamo creare l'oggetto di quella classe perché appartiene alla classe solo in cui è dichiarato. I metodi non statici possono accedere facilmente a qualsiasi variabile statica e statica senza l'istanza della classe.

Per chiamare un metodo statico da un altro metodo statico, possiamo usare la parola chiave "this".

Codice:

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

E se volessimo chiamare un metodo statico dal metodo non statico. Per questo, possiamo andare con uno dei due approcci

1) classname.static_method_name (); : Utilizzando il nome della classe
2) this.constructor.static_method_name (); : O usando la proprietà del costruttore.

Codice:

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 ha anche l'introduzione di classi in ES6, quindi ora possiamo utilizzare il metodo statico, i costruttori, le super chiamate ai genitori e l'ereditarietà che renderanno l'interoperabilità molto più semplice per lo sviluppatore. Quindi possiamo avere una sottoclasse per una classe genitore e qualsiasi metodo che dichiariamo nella classe genitore che sarà disponibile anche nella sottoclasse. Anche gli accessori Getter e setter sono introdotti in ES5 e possono essere utilizzati con la parola chiave statica. Di seguito è riportato l'esempio per mostrare come utilizzarlo con la parola chiave statica.

Codice:

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

Esempi di metodo statico JavaScript

Ecco alcuni esempi di metodo statico javascript riportati di seguito:

Esempio 1

Per mostrare il metodo statico con lo stesso nome.

Codice:



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

Produzione:

Esempio n. 2

Esempio per chiamare più di un metodo statico.

Codice:



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

Produzione:

Esempio n. 3

Per visualizzare un messaggio.

Codice:



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

Produzione:

Esempio n. 4

Chiamare un metodo statico da un metodo non statico.

Codice:



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

Produzione:

Esempio n. 5

Chiamare un metodo statico dal costruttore.

Codice:



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

Produzione :

Conclusione

Quindi, in sostanza, il metodo statico non richiede all'istanza di accedervi, possiamo accedervi direttamente con il nome della classe al loro interno. Ad esempio ClassName.Static-method-name-to-be = called ();

Articoli consigliati

Questa è una guida al metodo statico JavaScript. Qui discutiamo la sintassi, il funzionamento e gli esempi del metodo statico javascript. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più -

  1. Eventi JavaScript
  2. Errori in JavaScript
  3. JavaScript vs Ruby
  4. Funzione ricorsiva in JavaScript

Categoria: