[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Classes/static [Back]  [Original]

static - JavaScript | MDN

Esta pgina foi traduzida do ingls pela comunidade. Saiba mais e junte-se comunidade MDN Web Docs.

View in English Always switch to English

static

Baseline Widely available

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.

In this article

Sintaxe

static nomeDoMetodo() { ... }

Descrio

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.

Chamada de mtodos estticos

De outro mtodo esttico

Para chamar um mtodo esttico dentro de outro mtodo esttico da mesma classe, podemos utilizar a palavra reservada this.

js
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'

De outro construtor e outros mtodos

Mtodos estticos no so diretamente acessveis utilizando-se this a partir de mtodos no estticos. necessrio cham-los usando o nome da classe:

js
nomeDaClasse.nomeDoMetodoEstatico();

ou chamando o mtodo como uma propriedade do construtor:

js
this.constructor.nomeDoMetodoEstatico().
js
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.";
  }
}

Exemplos

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.

js
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'.

Especificaes

Specification
ECMAScript 2027 LanguageSpecification
# sec-class-definitions

Compatibilidade com navegadores

Veja tambm


Web Proxy Viewer  |  New URL  |  Original Page