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 -
- Eventos JavaScript
- Erros no JavaScript
- JavaScript vs Ruby
- Função Recursiva em JavaScript