ya que soy un principiante no puedo saber lo que está pasando allí. ¿Podrías ayudarme/explicarme qué está pasando?
Funciona con todas las propiedades excepto la "ubicación", dice:
property has been declared
'use strict'; const restaurant = { name: 'Classico Italiano', location: 'Via Angelo Tavanti 23, Firence, Italy', categories: ['Italian', 'Pizzeria', 'Vegetarian', 'Organic'], starterMenu: ['Focaccia', 'Bruschetta', 'Garlic Bread', 'Caprese Salad'], mainMenu: ['Pizza', 'Pasta', 'Risotto'], hello_kitty: function (two, three) { return [this.starterMenu[two], this.mainMenu[three]]; }, }; const {location} = restaurant; console.log(location);Como dice su consola: no se puede asignar la propiedad de location a una nueva variable porque se ha declarado antes .
esto sucedió porque su Javascript se ejecuta en un entorno (navegador) y este entorno tiene algunas variables y métodos.
Puedes ver esto a través de:
console.log(window)el resultado seria:
Window {0: global, window: Window, self: Window, document: document, name: '', location: Location, …} como puede ver, la ubicación es una propiedad predefinida que existe en su objeto de ventana, por lo que declarar una nueva propiedad de location en el global scope fue la causa del problema.
si está familiarizado con los scopes en Javascript, simplemente puede envolver su fragmento de código en una función para que funcione correctamente:
'use strict'; function logLocation(){ const restaurant = { name: 'Classico Italiano', location: 'Via Angelo Tavanti 23, Firence, Italy', categories: ['Italian', 'Pizzeria', 'Vegetarian', 'Organic'], starterMenu: ['Focaccia', 'Bruschetta', 'Garlic Bread', 'Caprese Salad'], mainMenu: ['Pizza', 'Pasta', 'Risotto'], hello_kitty: function (two, three) { return [this.starterMenu[two], this.mainMenu[three]]; }, }; const {location} = restaurant; console.log(location); } logLocation()Si está utilizando este código en la consola del navegador, es natural recibir este error, ya que la ubicación es un nombre reservado para el objeto de ubicación, un objeto que contiene información sobre la URL de la página actual.