Hola, alguien me puede explicar esto const {r,g,b} = this; ¿Por qué no tiene nombre de variable, si 'esto' es el nombre de variable, a qué apunta 'esto'?
function makeColor(r, g, b) { const color = {}; color.r = r; color.g = g; color.b = b; color.rgb = function () { const { r, g, b } = this; return `rgb(${r},${g},${b})` } }La palabra 'esto' no es una variable. Este es un concepto relativamente nuevo. lo llaman sintaxis de desestructuración de objetos.
"esto" es una propiedad especial de los métodos. Cuando se llama a una función como método de un objeto, como aquí, "esto" se refiere a ese objeto, en este caso el objeto de color, por lo que el método color.rgb() devolverá la cadena "rgb(r,g ,b)" donde r, g y b son los valores que se alimentan a la función makeColor utilizada para crear ese objeto.
Variable this ni siquiera existe, esta es una de las palabras invertidas (como break , for , function , let etc.), this en el contexto que muestra dirige a la constante de color , por lo que en el contexto muestra que this es igual a la constante de color .
Más sobre this en MDN .