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

134
Vistas
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 Respuestas
Responde la pregunta

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 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