¿Hay alguna forma de imprimir el objeto usando el método de interpolación de cadenas?
const star = { id: 1, name: 'Arcturus', visualMag: -0.05, };este metodo no funciona
console.log(`${star}`); // [object Object]Esto funciona
console.log(`${star.name}`); // 'Arcturus'y simplemente usando console.log(star) funciona
Oye, haz este sencillo truco:
console.log({star});Producción:
[Log] {star: {id: 1, name: "Arcturus", visualMag: -0.05}}Puedes usar JSON.stringify
console.log(`${JSON.stringify(test)}`)Cuando usa un objeto dentro de la plantilla literal, obliga al objeto a una cadena. Busca un método toString en el objeto. Si no se encuentra, utilizará el método Object.prototype.toString que devuelve "[object Object]" .
Entonces, agregue una propiedad toString al objeto.
const star = { id: 1, name: 'Arcturus', visualMag: -0.05, }; Object.defineProperty(star, "toString", { value: function() { return JSON.stringify(this) } }) console.log(`${star}`); Nota: Puede agregar directamente star.toString = function() { ... } . Pero eso agregará una propiedad enumerable al objeto y se mostrará cuando registre el objeto directamente.