es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puede una función flecha recibir un parámetro como un objeto que tiene tanto propiedades como parámetros por defecto?

¿Alguien puede ayudarme a entender el siguiente código?

const doit = ({
   left: Left,
   right: Right,
   leftWeight = 1,
   rightWeight = 1
}) => {
   console.log(Left, Right, leftWeight, rightWeight);
};

doit({ left: '111', leftWeight: 2});

Parece haber dos formas de pasar parámetros por defecto, y de alguna manera está involucrada la asignación destructurante, pero ¿cómo puedo desglosarlo para entenderlo?

Adición 1

Ok, parece que esto no es un problema de parámetros por defecto y funciones flecha, sino simplemente de desestructuración de objetos:

const { left: Left, right: Right, leftWeight = 1, rightWeight = 1 } = { left: "111", leftWeight: 2 };
console.log(Left, Right, leftWeight, rightWeight);

Adición 2

Este código produce el mismo resultado:

const { Left, Right, leftWeight = 1, rightWeight = 1 } = { Left: "111", leftWeight: 2 };
console.log(Left, Right, leftWeight, rightWeight);

La desestructuración de objetos aparentemente tiene la opción de renombrar las variables:

image

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Este código demuestra la destructuración de objetos en JavaScript, donde un objeto puede descomponerse en variables individuales.

    La función doit toma un objeto como parámetro, el cual tiene las propiedades left, right, leftWeight y rightWeight. Al utilizar la destructuración de objetos en la definición del parámetro ({ left: Left, right: Right, leftWeight = 1, rightWeight = 1 }), asignamos el valor de la propiedad left a una nueva variable Left y el valor de la propiedad right a Right. Además, establecemos valores predeterminados para leftWeight y rightWeight en caso de que no se proporcionen.

    En el fragmento de código doit({ left: '111', leftWeight: 2});, pasamos un objeto solo con las propiedades left y leftWeight. Dado que no se especifican right y rightWeight, se utilizan sus valores predeterminados de 1. La función doit luego registra los valores de Left, Right, leftWeight y rightWeight en la consola, que serán 111, undefined, 2 y 1, respectivamente.

    El Apéndice 1 y el Apéndice 2 demuestran aún más la destructuración de objetos descomponiendo un objeto en variables individuales y asignando valores predeterminados en caso de que no se proporcionen. El Apéndice 2 muestra que los nombres de las variables no tienen que coincidir con los nombres de las propiedades del objeto, ya que la destructuración de objetos permite cambiar el nombre de las variables durante la asignación.

Comments are closed.