Introdução ao método estático JavaScript

Métodos estáticos JavaScript geralmente são usados ​​para criar funções utilitárias. Eles são introduzidos no ES6 para o método específico de classe para programação orientada a objetos em JavaScript.

Para declarar um método estático, podemos simplesmente usar a palavra-chave estática com a assinatura do método. O método estático não é chamado na instância da classe para a qual eles são chamados diretamente na classe.

Então, podemos dizer que o JavaScript nos fornece um método estático que pertence à classe, mas não com a instância da classe. Assim como java, não exigimos que uma instância da classe chame o método estático no JavaScript também. Portanto, o método estático no JavaScript pertence à própria classe.

Sintaxe:

static methodName()()

No JavaScript, também usamos a palavra-chave static para definir qualquer método como um método estático. Nós só precisamos usar a palavra-chave estática junto com o nome do método. Os nomes dos métodos podem ser qualquer coisa. Há muitos pontos relacionados a essa palavra-chave estática, vamos verificá-los um por um:

  • Uma classe pode conter qualquer número de métodos estáticos. Em outras palavras, uma classe pode ter mais de um método estático.
  • O método estático pode ter qualquer nome, como qualquer outro método ou função.
  • Para chamar um método estático de outro método estático, podemos usar esta palavra-chave.
  • O método estático pode ser usado para criar funções utilitárias.
  • Se quisermos chamar um método estático do método não estático nesses casos, não podemos usar esta palavra-chave. Precisamos chamar o método estático pelo nome da classe ou como propriedade do construtor.
  • Podemos declarar mais de um método estático com o mesmo nome, mas, se o fizermos, o JavaScript sempre chamará o último.

Um exemplo simples para demonstrar a sintaxe do método estático.

Código:


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

No exemplo acima, estamos chamando o método estático com o nome da classe e não criando a instância da classe. Usando o nome da classe apenas como uma instância.

Como métodos estáticos funcionam em JavaScript?

  • Método estático são métodos que exigem que um objeto de uma classe seja criado antes de ser chamado. Para chamá-los, precisamos criar o objeto da classe em que está definido. O método estático recebe uma chamada de duas maneiras, uma usando esta palavra-chave outra do construtor.
  • Métodos estáticos não podem chamar diretamente o método não estático. Métodos on-static usam o estado variável da instância para afetar seu comportamento. O método estático também não pode ver o estado da variável de instância; portanto, se tentarmos chamar o método não estático do compilador de método estático, o queixoso será chamado.
  • Além disso, o método estático não pode usar a variável de instância não estática. O método estático não pode se referir a nenhuma variável de instância da classe. O método estático não sabe qual o valor variável da instância a ser usado.
  • Considerando que, no caso de métodos não estáticos, eles possuem qualquer palavra-chave estática junto com o nome do método e, se queremos trabalhar com métodos não estáticos, precisamos criar o objeto dessa classe, porque ele pertence à classe somente na qual é declarado. Métodos não estáticos podem acessar facilmente qualquer variável estática e estática sem a instância da classe.

Para chamar um método estático de outro método estático, podemos usar a palavra-chave 'this'.

Código:

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

Mas e se quisermos chamar um método estático do método não estático. Para isso, podemos usar qualquer uma das duas abordagens

1) classname.static_method_name (); : Usando o nome da classe
2) this.constructor.static_method_name (); : Ou usando a propriedade construtor.

Código:

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.';
)
)

O JavaScript também tem a introdução de classes no ES6; agora, podemos utilizar o método estático, construtores, super chamadas ao pai e herança, o que tornará a interoperabilidade muito mais fácil para o desenvolvedor. Portanto, podemos ter uma subclasse para uma classe pai e qualquer método que declaramos na classe pai que também estará disponível na subclasse. Os acessadores getter e setter também são introduzidos no ES5 e isso pode ser usado com a palavra-chave estática. Abaixo está o exemplo para mostrar como usar isso com a palavra-chave estática.

Código:

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

Exemplos de método estático JavaScript

Aqui estão alguns exemplos do método estático de javascript abaixo:

Exemplo 1

Para mostrar o método estático com o mesmo nome.

Código:



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

Resultado:

Exemplo 2

Exemplo para chamar mais de um método estático.

Código:



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

Resultado:

Exemplo 3

Para exibir uma mensagem.

Código:



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

Resultado:

Exemplo 4

Chamando um método estático de um método não estático.

Código:



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

Resultado:

Exemplo 5

Chamando um método estático do construtor.

Código:



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

Resultado :

Conclusão

Então, basicamente, o método estático não exige que a instância os acesse, podemos acessá-los diretamente pelo nome da classe a que pertencem. Por exemplo ClassName.Static-method-name-to-be = chamado ();

Artigos recomendados

Este é um guia para o método estático JavaScript. Aqui discutimos a sintaxe, o trabalho e os exemplos do método estático javascript. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. Eventos JavaScript
  2. Erros no JavaScript
  3. JavaScript vs Ruby
  4. Função Recursiva em JavaScript