Debounced Function in JavaScript

JavaScript

Function as an argument and returns a debounced version:

To create a function that takes another function as an argument and returns a debounced version of it, you can implement a debouncing mechanism. Debouncing is a technique used to limit the rate at which a function is invoked, typically to improve performance by ensuring that expensive operations are only executed after a certain amount of time has passed since the last invocation.

Here's how you can implement a function that takes another function as an argument and returns a debounced version of it:

js Copy Code
function debounce(func, delay) {
    let timeoutId;

    return function debounced(...args) {
        const context = this;

        clearTimeout(timeoutId);

        timeoutId = setTimeout(() => {
            func.apply(context, args);
        }, delay);
    };
}

// Example usage:
function myFunction() {
    console.log('Function debounced');
}

// Debounce myFunction with a delay of 1000 milliseconds
const debouncedFunction = debounce(myFunction, 1000);

// Call debounced function
 // myFunction will be invoked after 1000 milliseconds
debouncedFunction();
Output:
Function debounced

Explanation:

1. The 'debounce' function takes two parameters: 'func', the function to debounce, and 'delay', the delay in milliseconds.

2. It returns a new function ('debounced') that will execute the original function ('func') after the specified 'delay'.

3. When the 'debounced' function is called, it clears any existing timeout and sets a new timeout to execute the original function after the specified delay.

You can adjust the 'delay' parameter to control how long the function should wait before executing the debounced version.

What's Next?

We actively create content for our YouTube channel and consistently upload or share knowledge on the web platform.