Tengo un código largo con muchos métodos, pero como estoy en stackoverflow, les agregaré un ejemplo mínimo simple aquí (no es el final, pero espero mostrarles el error):
Tengo un código como este:
class MyClass { constructor() { this.myMethod(); } myMethod() { console.log("hello world!") } } new MyClass();y este código está bien.
el método se ejecuta una vez.
pero si lo llamo más de 2 veces, ejecutará el método en otra ocasión.
/* other code */ new MyClass(); new MyClass(); new MyClass(); new MyClass(); new MyClass(); // wrong output: hello world hello world hello world ... // desired output (only one time) hello worldsi está interesado en por qué ejecutar una vez. esto se debe a que quiero que la clase cree algunos elementos Ui al principio, pero luego obtenga la interfaz de usuario generada y cambie las cosas con los parámetros dados en el constructor
consulte esta documentación: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/static
hay una palabra clave para las clases que hacen esto llamada static
class MyClass { // no () just static and { your code } static { console.log("called once"); } myOtherMethod() { console.log("run when I want or every time") } } /* other code */ new MyClass(); new MyClass(); new MyClass(); new MyClass(); new MyClass();