¿Cómo puedo cambiar la forma en que String o Number emiten una clase?
Por ejemplo, tengo la clase Usuario:
class User { constructor(name, age) { this._name = name; this._age = age; } }¿Cómo convierto un objeto de clase en String y recupero el atributo de nombre cuando lo convierto en String? Y si quiero convertir el objeto de la clase en Número, devuelve el atributo de edad.
Como esto:
const user = new User('Kevin', 23); console.log(String(user)) // Kevin console.log(Number(user)) // 23¡Gracias!
Utilice los métodos toString y valueOf .
class User { constructor(name, age) { this._name = name; this._age = age; } toString() { return this._name; } valueOf() { return this._age; } } const user = new User('Kevin', 23); console.log(String(user)) // Kevin console.log(Number(user)) // 23¿Quiero saber por qué? No parece que esto reduzca la complejidad.
String(user); Number(user); user.string; user.number; user.name; user.age;