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

137
Visualizações
Método de conteo personalizado en JavaScript

Con fines de aprendizaje, he creado un archivo JS. Implementé un Método dentro del JS-Object para obtener un contador de BookStorage. La cuestión es que cada vez que agrego Libros, el Navegador me devuelve el valor predeterminado para el Objeto. ¿Alguien tiene una idea?

Aquí hay algunos fragmentos de mi Código:

Libro-Clase:

 class Book{ constructor( name, quantity ){ this.name = name, this.quantity = quantity } showStorage(param) { if(param != null){ return this.quantity + param; this.quantity += param; } else {return this.quantity;} } }

Guión principal:

 import Book from "./Book.js" const lordOfRings = new Book( "Lord of the Rings", 10 ) console.log("The Book:", lordOfRings.name); console.log("The number in Storage:", lordOfRings.showStorage()); console.log("Adding 10 Books to storage:", lordOfRings.showStorage(10)); console.log("Adding 10 Books to storage:", lordOfRings.showStorage()); console.log("New Storage amount of Books:", lordOfRings.showStorage(10));

Mi resultado esperado era:

 "Lord of the Rings" 10 20 20 30

En lugar de eso, obtengo:

 "Lord of the Rings" 10 20 10 20
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

El problema es que en una función, el return debe ser la última línea.

La declaración de devolución finaliza la ejecución de la función y especifica un valor que se devolverá a la persona que llama a la función. ( Documentos de MDN )

Dado que la ejecución de la función finaliza, significa que el código después de la declaración de return nunca se ejecuta.

Recomiendo depurar su código usando un visualizador de ejecución de código

Aquí está parte de su código. Intentó cambiar el valor de this.quantity después de la declaración de return .

 showStorage(param) { if(param != null){ return this.quantity + param; // This doesn't change the value of this.quantity. It just returns that value + 10 (in your example). The value of `this.quantity` is always the same. // This line does not run because it's after the return statement this.quantity += param; } else {return this.quantity;} } }

Aquí hay una solución mínima. Debe incrementar el valor de this.quantity y luego devolverlo.

 showStorage(param) { if(param != null){ this.quantity += param; return this.quantity; } else {return this.quantity;} } }

Aquí hay un refactor teniendo en cuenta los comentarios de Ivar y Cristian Traìna

 showStorage(param) { if(param){ // an empty `param` is `undefined`, not `null` as the commenter said above. this.quantity += param; } return this.quantity; }
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