| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Classes/static | [Back] [Original] |
Get to know MDN better
Esta pgina foi traduzida do ingls pela comunidade. Saiba mais e junte-se comunidade MDN Web Docs.
This feature is well established and works across many devices and browser versions. Its been available across browsers since maro de 2016.
A palavra chave static define um mtodo esttico para a classe. Mtodos estticos no so chamados na instncias da classe. Em vez disso, eles so chamados na prpria classe. Geralmente, so funes utilitrias, como funes para criar ou clonar objetos.
static nomeDoMetodo() { ... }
Chamadas a mtodos estticos so feitas diretamente na classe e no podem ser feitas em uma instncia da classe. Mtodos estticos so comumente utilizados como funes utilitrias.
Para chamar um mtodo esttico dentro de outro mtodo esttico da mesma classe, podemos utilizar a palavra reservada this.
class ChamadaDoMetodoEstatico {
static metodoEstatico() {
return "O mtodo esttico foi chamado";
}
static outroMetodoEstatico() {
return this.metodoEstatico() + " de outro mtodo esttico";
}
}
ChamadaDoMetodoEstatico.metodoEstatico();
// 'O mtodo esttico foi chamado'
ChamadaDoMetodoEstatico.outroMetodoEstatico();
// 'O mtodo esttico foi chamado de outro mtodo esttico'
Mtodos estticos no so diretamente acessveis utilizando-se this a partir de mtodos no estticos. necessrio cham-los usando o nome da classe:
nomeDaClasse.nomeDoMetodoEstatico();
ou chamando o mtodo como uma propriedade do construtor:
this.constructor.nomeDoMetodoEstatico().
class ChamadaDoMetodoEstatico {
constructor() {
console.log(ChamadaDoMetodoEstatico.MetodoEstatico());
// 'O mtodo esttico foi chamado.'
console.log(this.constructor.MetodoEstatico());
// 'O mtodo esttico foi chamado.'
}
static MetodoEstatico() {
return "O mtodo esttico foi chamado.";
}
}
O exemplo a seguir demonstra vrias coisas. Ele mostra como um mtodo esttico implementado em uma classe e como uma classe com um membro esttico pode virar uma subclasse. Por fim, ele mostra como um mtodo esttico pode e no pode ser chamado.
class Tripple {
static tripple(n) {
n = n | 1;
return n * 3;
}
}
class BiggerTripple extends Tripple {
static tripple(n) {
return super.tripple(n) * super.tripple(n);
}
}
console.log(Tripple.tripple());
console.log(Tripple.tripple(6));
console.log(BiggerTripple.tripple(3));
var tp = new Tripple();
console.log(tp.tripple()); //Logs 'tp.tripple is not a function'.
| Specification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-class-definitions |
This page was last modified on 8 de nov. de 2023 by MDN contributors.
Your blueprint for a better internet.
Portions of this content are 19982026 by individual mozilla.org contributors. Content available under a Creative Commons license.
| Web Proxy Viewer | New URL | Original Page |