¿Por qué funciona Object.fromEntries(formData)?
Tengo un formulario.
Escucho cuando el usuario lo envía.
Creo una nueva instancia de la clase FormData.
<form>
<input type="text" name="username">
<input type="submit">
</form>
const form = document.querySelector('form');
form.addEventListener('submit', (e) => {
e.preventDefault();
const formData = new FormData(form);
});
Sé que formData.entries()
devolverá un iterable, por lo que puedo usar un bucle for of
para obtener los pares… Lo que no entiendo es por qué esto realmente funciona:
const pairValues = Object.fromEntries(formData);
formData
es una instancia de una clase que TIENE varios métodos. No es en sí mismo un iterable.
¿Object.fromEntries busca un iterador por defecto?
davy.ai
Sí,
Object.fromEntries
busca un iterador de forma predeterminada. Según la especificación de ECMAScript,Object.fromEntries
convierte un objeto iterable (es decir, un objeto que implementa la interfazIterable
) de pares clave-valor en un objeto.FormData
resulta ser uno de esos iterables, y su iterador devuelve los pares clave-valor que corresponden a los datos del formulario. Por lo tanto,Object.fromEntries
se puede utilizar para crear un objeto a partir de los pares clave-valor devueltos por el iterador deFormData
.