Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

300
Vistas
ES6 - Llamar al método estático dentro de una clase

Tengo esta clase que hace una llamada interna a un método estático:

 export class GeneralHelper extends BaseHelper{ static is(env){ return config.get('env:name') === env; } static isProd(){ return GeneralHelper.is('prod'); } }

¿Hay alguna palabra clave que pueda usar para reemplazar el nombre de la clase en la siguiente línea?

 GeneralHelper.is('prod');

En PHP hay self , static , etc. ¿ES6 proporciona algo similar a estos?

TY.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Si está llamando a la función estática desde dentro de una instancia, la forma correcta de referirse a la función estática de la clase es:

this.constructor.functionName();

Llame a métodos estáticos desde métodos de clase ES6 regulares

over 4 years ago · Santiago Trujillo Denunciar

0

Es lo mismo que llamar a un método en un objeto ordinario . Si llama al método GeneralHelper.isProd() , GeneralHelper estará disponible this en el método, por lo que puede usar

 class GeneralHelper { static is(env) { … } static isProd(){ return this.is('prod'); } }

Sin embargo, esto no funcionará cuando el método se transmita como una función de devolución de llamada, como de costumbre . Además, puede ser diferente de acceder a GeneralHelper explícitamente cuando alguien hereda isProd de su clase y sobrescribe is , InheritedHelper.isProd() producirá otros resultados.

Si desea llamar a métodos estáticos desde métodos de instancia, consulte aquí . También tenga en cuenta que una clase que solo define métodos estáticos es un bicho raro, es posible que desee usar un objeto simple en su lugar.

over 4 years ago · Santiago Trujillo Denunciar

0

Ambas respuestas aquí son correctas y buenas, pero quería agregar un detalle adicional basado en el título de esta pregunta.

Cuando vi "ES6: llamar al método estático dentro de una clase", sonaba como "llamar a un método estático (desde un método no estático) dentro de una clase". Definitivamente no es lo que el autor de la pregunta inicial está preguntando en los detalles.

Pero para cualquiera que quiera saber cómo llamar a un método estático desde un método no estático dentro de una clase, puede hacerlo así:

 class MyClass { myNonStaticMethod () { console.log("I'm not static.") MyClass.myStaticMethod() } static myStaticMethod () { console.log("hey, I'm static!") } } MyClass.myStaticMethod() // will log "hey, I'm static!" const me = new MyClass() me.myNonStaticMethod() // will log "I'm not static" and then "hey, I'm static!"

La idea es que se pueda llamar al método estático sin crear una nueva instancia de la clase. Eso significa que puede llamarlo dentro del método de una instancia de la misma manera que lo llamaría fuera de la instancia.

Nuevamente, sé que eso no es lo que pedía el detalle de la pregunta, pero esto podría ser útil para otras personas.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda