- 我有一個表格。
- 當用戶提交時我會聽。
- 我創建了一個 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);
});
我知道這formData.entries()將回傳一個可迭代物件,所以我可以使用for of回圈來獲取對......我不明白的是為什么這實際上有效:
const pairValues = Object.fromEntries(formData);
formData是具有多個方法的類的實體。本身不是可迭代的。
Object.fromEntries 是否默認查找迭代器?
uj5u.com熱心網友回復:
這是因為一個FormData物件有一個Symbol.iterator方法,這使得它可以迭代。
您可以檢查并查看:
formData[Symbol.iterator] === formData.entries
它們是相同的功能。
現在Object.fromEntries(form)接受一個可迭代的,以及mdn檔案:
引數
iterable一個可迭代物件,例如
Array或Map或其他實作可迭代協議的物件。
因此Object.fromEntries將呼叫formData[Symbol.iterator],這與呼叫相同formData.entries。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/386121.html
標籤:javascript 形式 表单数据 可迭代的
