- 我有一張表格。
- 當用戶提交它時,我會傾聽。
- 我創建了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()
將返回一個iterable,因此我可以使用for of
循環來獲取對。。。我不明白的是為什么這真的有效:
const pairValues = Object.fromEntries(formData);
formData
是具有多個方法的類的實例。它本身不是一個可移植的。
Object.fromEntries是否默認查找迭代器?
這是因為一個
FormData
對象有一個Symbol.iterator
方法,這使得它是可移植的。您可以檢查并查看:
它們具有相同的功能。
現在
Object.fromEntries(form)
接受一個iterable,也接受mdn文檔:因此
Object.fromEntries
將調用formData[Symbol.iterator]
,這與調用formData.entries
相同。