Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

158
Visualizações
Diferencia entre super y esto al llamar a una función en subclase en js

 class A { data1 = 1; constructor(){ this.data2 = 2; } test() { console.log(this) } } class B extends A { constructor() { super(); } funcA() { this.test() } funcB() { super.test() } } let foo = new B() foo.funcA(); foo.funcB();

¿Cuál es la diferencia entre funcA() y funcB() al llamar, o son exactamente lo mismo? Por cierto, ¿cuál es la diferencia entre data1 y data2 declarados dentro y fuera del constructor, que es el preferido?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Con this.test() , hace referencia a la instancia . No existe ninguna propiedad de test directamente en la instancia, por lo que, al igual que con la herencia de prototipos estándar, se examina el objeto prototipo en busca de la propiedad. Este prototipo es A.prototype , que tiene una propiedad de test , por lo que se llama.

Con super.test() , en su lugar, comienza a buscar la propiedad de test en la superclase - A.prototype , que se encuentra inmediatamente y se llama.

Si también tuviera un método de test en B, vería la diferencia.

 class A { data1 = 1; constructor(){ this.data2 = 2; } test() { console.log('a') } } class B extends A { constructor() { super(); } test() { console.log('b'); } funcA() { this.test() } funcB() { super.test() } } const foo = new B() foo.funcA(); foo.funcB();

Por cierto, ¿cuál es la diferencia entre data1 y data2 declarados dentro y fuera del constructor, que es el preferido?

Tu decides. Sin embargo, los campos de clase (asignación fuera del constructor) son un poco más concisos (especialmente si su constructor no contiene nada más) pero menos compatibles; si desea usarlos, asegúrese de transpilar su código.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda