DEV Community

Cristian Fernando
Cristian Fernando

Posted on • Edited on

Paracetamol.js💊| #190: Explica este código JavaScript

Explica este código JavaScript

Dificultad: Básico

¿Cuál es la manera correcta de llamar a un setter?

class Dog {
  #peso;
  constructor({ color, tamanio, peso=10, cola=true}){
    this.color = color;
    this.tamanio = tamanio;
    this.#peso = peso;
    this.cola = cola;
  }

  set setColor(nuevoColor){
    this.color = nuevoColor;
  }
}

const boby = new Dog({
  color: "cafe",
  tamanio: "grande"
});

console.log(boby.color); //cafe

boby.setColor("rojo"); //A 
boby.setColor = "rojo"; //B
Enter fullscreen mode Exit fullscreen mode

A. A
B. B
C. Ninguna de las anteriores

Respuesta en el primer comentario.


Top comments (4)

Collapse
 
duxtech profile image
Cristian Fernando

Respuesta:
B. B

El método setColor es un setter que recibe un parámetro, entonces es tentador marcar A como respuesta correcta justamente por ese parámetro, pero al igual que con los getters, los setters son métodos especiales y la manera correcta de llamarlos es asignándoles el nuevo valor como si de un objeto literal se tratara, por ende la respuesta correcta es B.

Collapse
 
chema profile image
José María CL

B

Collapse
 
hiholas profile image
Nico Delgado

Hola, no conocía esa forma de programar en JS, creo que he estado mucho tiempo con React y Vue :c. Además de buscarlos por su nombre, hay POO en JS?

Collapse
 
duxtech profile image
Cristian Fernando

JavaScript desde siempre fue un lenguaje orientado a prototipos, pero como todos los otros lenguajes con los que competía eran orientado a objetos tuvo que actualizar su sitaxis para incorporar clases y así ser un lenguaje un poco mas "serio".

Antes de los hooks react era con clases, ahora frameworks de node como nest usan POO con js, así que vale la pena al menos saber la sintaxis.