En una clase como la siguiente:
class Rect { constructor({ x = 0, y = 0, width = 0, height = 0, bgColor = "#000000" } = {}) { this.x = x; this.y = y; this.width = width; this.height = height; this.bgColor = bgColor; } }Parece que hay muchas repeticiones al asignar todo al objeto de clase y me preguntaba si había alguna forma de hacerlo todo a la vez.
puedes asignarlo así.
class Rect { constructor({ x = 0, y = 0, width = 0, height = 0, bgColor = "#000000" } = {}) { Object.assign(this, {x, y, width, height, bgColor}) } } const r = new Rect() console.log(r, rx, ry, r.width, r.height, r.bgColor)También puedes usar for...of loop así:
class Rect { constructor(param = { x: 0, y: 0, width: 0, height: 0, bgColor: "#000000" }) { for (const [key, value] of Object.entries(param)) { this[key] = value } } }; const b = new Rect(); console.log(bx, by, b.width, b.height, b.bgColor)Thow La respuesta de Vinod Liyanage es más elegante y más corta.