Métodos estáticos de JavaScript


Tabla de contenido

    Mostrar tabla de contenidos

Los métodos de clase estática se definen en la propia clase.

No puede llamar a un método static en un objeto, solo en una clase de objeto.

Ejemplo

class Car {
  constructor(name) {
    this.name = 
  name;	  }
  static hello() {
    return "Hello!!";	  }
}
const myCar = new Car("Ford");
// You can call 'hello()' on 
  the Car Class:
document.getElementById("demo").innerHTML 
  = Car.hello();
// But NOT on a Car Object:
// document.getElementById("demo").innerHTML 
  = myCar.hello();
// this will raise an error.

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Class Static Methods</h1>
<p>A static method is created with the "static" keyword, and you can only call the method on the class itself.</p>

<p id="demo"></p>

<script>
class Car {
  constructor(name) {
    this.name = name;
  }
  static hello() {
    return "Hello!!";
  }
}

const myCar = new Car("Ford");

//You can call 'hello()' on the Car Class:
document.getElementById("demo").innerHTML = Car.hello();

// But NOT on  a Car Object:
// document.getElementById("demo").innerHTML = myCar.hello();
// this will raise an error.
</script>

</body>
</html>

Si desea utilizar el objeto myCar dentro del método static, puede enviarlo como parámetro:

Ejemplo

class Car {
  constructor(name) {
    this.name = 
  name;	  }
  static hello(x) {
    return "Hello " + 
  x.name;	  }
}
const myCar = new Car("Ford");
document.getElementById("demo").innerHTML 
  = Car.hello(myCar);

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Class Static Methods</h1>
<p>To use the "myCar" object inside the static method, you can send it as parameter.</p>

<p id="demo"></p>

<script>
class Car {
  constructor(name) {
    this.name = name;
  }
  static hello(x) {
    return "Hello " + x.name;
  }
}

const myCar = new Car("Ford");
document.getElementById("demo").innerHTML = Car.hello(myCar);
</script>

</body>
</html>