Este código se usa para agregar nuevos libros, pero no entiendo cómo funciona realmente. Veo que se usó una variable libros, pero nunca se asignó. ¿Cómo llegó a existir?
<script> const bookManager = { addBook: function(book){ if(!this.books){ this.books = [book]; } else{ this.books.push(book); } } }; </script>bookManager es un objeto. addBook es un método dentro del objeto. Cuando se llama al método addBook , se comprueba si el objeto bookManager tiene una propiedad llamada books . Si no tiene los books , entonces está creando una propiedad de books en esta línea this.books = [book]; y agregarle un book . Si tiene la propiedad, entonces está empujando el book hacia ella. Aquí this representando el objeto bookManager
const bookManager = { addBook: function(book) { if (!this.books) { this.books = [book]; } else { this.books.push(book); } } }; bookManager.addBook('test'); console.log(bookManager.books)this.books se inicializa si no existe en: this.books=[book] . La verificación si está vacío se realiza en la instrucción if en: if(!this.books){} . Será falso la primera vez. Si existe, el siguiente book se insertará en la nueva matriz.
El objeto Manager toma 'libro' como argumento y lo agrega a una matriz que es una propiedad (similar a 'miembros' en otros lenguajes orientados a objetos). Si la matriz no existe, crea una y la inicializa con 'libro' como primer elemento.
el uso seria
bookManager.addBook("The Swarm")Resultado:
console.log(bookManager.books) Array(1) ["The Swarm"]