Function ใน Lodash

ใน Lodash, คุณสามารถใช้ฟังก์ชันที่เกี่ยวข้องกับการจัดการฟังก์ชัน (functions) ใน JavaScript ได้อย่างมีประสิทธิภาพ นี่คือบางตัวอย่างของฟังก์ชันที่ Lodash มีเพื่อใช้งานกับฟังก์ชัน:

  1. _.debounce(func, [wait], [options]): ใช้สำหรับการรองรับฟังก์ชัน func และรีเทิร์นฟังก์ชันใหม่ที่ทำหน้าที่เรียก func อัตโนมัติหลังจากระยะเวลา wait ที่กำหนด (milliseconds) โดยจะรอให้ผู้ใช้หยุดการกระทำก่อนจะเรียก func.

    1
    2
    3
    4
    5
    const saveChanges = () => console.log('Changes saved');
    const debouncedSave = _.debounce(saveChanges, 1000);

    // จะรอจนกว่าจะไม่มีการเรียกใช้ debouncedSave เป็นเวลา 1 วินาที
    debouncedSave();
  2. _.throttle(func, [wait], [options]): ใช้สำหรับการรองรับฟังก์ชัน func และรีเทิร์นฟังก์ชันใหม่ที่จะเรียก func อัตโนมัติเมื่อผ่านไประยะเวลา wait ที่กำหนด (milliseconds) โดยไม่สนใจจำนวนการเรียกใช้ func.

    1
    2
    3
    4
    5
    const logMessage = () => console.log('Message logged');
    const throttledLog = _.throttle(logMessage, 1000);

    // จะเรียกใช้ logMessage ครั้งแรกทันที และจะรอ 1 วินาทีก่อนที่จะสามารถเรียกใช้อีกครั้ง
    throttledLog();
  3. _.memoize(func, [resolver]): ใช้สำหรับการแคชผลลัพธ์ของฟังก์ชัน func เพื่อลดการเรียกใช้ func ซ้ำซ้อน โดยมีตัวแก้ไข (resolver) ในกรณีที่คุณต้องการสร้างคีย์แคชเฉพาะ.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    const expensiveCalculation = (n) => {
    console.log(`Calculating for ${n}`);
    return n * 2;
    };

    const memoizedCalculation = _.memoize(expensiveCalculation);

    console.log(memoizedCalculation(5)); // จะเรียก expensiveCalculation(5) และแคชผลลัพธ์
    console.log(memoizedCalculation(5)); // จะใช้ค่าแคชเดียวกับครั้งแรก
  4. _.curry(func, [arity=func.length]): ใช้สำหรับการกำหนดฟังก์ชัน func ให้รองรับการเรียกตามเป็นลำดับ โดยแต่ละการเรียกจะรับอากิวเม้นต์เพียงหนึ่งตัว จนกว่าจะเรียกใช้ครบจำนวนอากิวเม้นต์ตาม arity ที่กำหนด.

    1
    2
    3
    4
    5
    6
    7
    const add = (a, b, c) => a + b + c;
    const curriedAdd = _.curry(add);

    const add2 = curriedAdd(2);
    const add2And3 = add2(3);

    console.log(add2And3(4)); // จะคืนค่า 2 + 3 + 4 = 9
  5. _.bind(func, thisArg, [partials]): ใช้สำหรับการผูกฟังก์ชัน func กับตัวชี้ thisArg และการส่งอากิวเม้นต์เริ่มต้น (partials) ถ้ามี ทำให้ฟังก์ชันที่ผูกเรียกใช้กับอากิวเม้นต์เหล่านั้นโดยอัตโนมัติ.

    1
    2
    3
    4
    5
    6
    const greet = function (greeting, punctuation) {
    return `${greeting}, ${this.name}${punctuation}`;
    };

    const boundGreet = _.bind(greet, { name: 'John' }, 'Hello');
    console.log(boundGreet('!')); // จะคืนค่า "Hello, John!"

เหล่าฟังก์ชันนี้แสดงถึงวิธีการใช้งานบางส่วนของ Lodash เพื่อจัดการกับฟังก์ชันใน JavaScript คุณสามารถใช้ Lodash เพื่อทำให้การใช้งานและจัดการฟังก์ชันในโปรเจกต์ของคุณง่ายขึ้นและมีประสิทธิภาพมากขึ้น.