function debounce(func, ms) {
let timeout;
return function() {
clearTimeout(timeout);
timeout = setTimeout(() => func.apply(this, arguments), ms);
};
}
Lệnh gọi debounce
trả về một wrapper. Khi được gọi, nó lên lịch cuộc gọi hàm ban đầu sau ms
đã cho và hủy bỏ thời gian chờ như vậy trước đó.