ใน Lodash, คุณสามารถใช้ฟังก์ชันที่เกี่ยวข้องกับการจัดการฟังก์ชัน (functions) ใน JavaScript ได้อย่างมีประสิทธิภาพ นี่คือบางตัวอย่างของฟังก์ชันที่ Lodash มีเพื่อใช้งานกับฟังก์ชัน:
_.debounce(func, [wait], [options]): ใช้สำหรับการรองรับฟังก์ชัน func และรีเทิร์นฟังก์ชันใหม่ที่ทำหน้าที่เรียก func อัตโนมัติหลังจากระยะเวลา wait ที่กำหนด (milliseconds) โดยจะรอให้ผู้ใช้หยุดการกระทำก่อนจะเรียก func.
1
2
3
4
5const saveChanges = () => console.log('Changes saved');
const debouncedSave = _.debounce(saveChanges, 1000);
// จะรอจนกว่าจะไม่มีการเรียกใช้ debouncedSave เป็นเวลา 1 วินาที
debouncedSave();_.throttle(func, [wait], [options]): ใช้สำหรับการรองรับฟังก์ชัน func และรีเทิร์นฟังก์ชันใหม่ที่จะเรียก func อัตโนมัติเมื่อผ่านไประยะเวลา wait ที่กำหนด (milliseconds) โดยไม่สนใจจำนวนการเรียกใช้ func.
1
2
3
4
5const logMessage = () => console.log('Message logged');
const throttledLog = _.throttle(logMessage, 1000);
// จะเรียกใช้ logMessage ครั้งแรกทันที และจะรอ 1 วินาทีก่อนที่จะสามารถเรียกใช้อีกครั้ง
throttledLog();_.memoize(func, [resolver]): ใช้สำหรับการแคชผลลัพธ์ของฟังก์ชัน func เพื่อลดการเรียกใช้ func ซ้ำซ้อน โดยมีตัวแก้ไข (resolver) ในกรณีที่คุณต้องการสร้างคีย์แคชเฉพาะ.
1
2
3
4
5
6
7
8
9const expensiveCalculation = (n) => {
console.log(`Calculating for ${n}`);
return n * 2;
};
const memoizedCalculation = _.memoize(expensiveCalculation);
console.log(memoizedCalculation(5)); // จะเรียก expensiveCalculation(5) และแคชผลลัพธ์
console.log(memoizedCalculation(5)); // จะใช้ค่าแคชเดียวกับครั้งแรก_.curry(func, [arity=func.length]): ใช้สำหรับการกำหนดฟังก์ชัน func ให้รองรับการเรียกตามเป็นลำดับ โดยแต่ละการเรียกจะรับอากิวเม้นต์เพียงหนึ่งตัว จนกว่าจะเรียกใช้ครบจำนวนอากิวเม้นต์ตาม arity ที่กำหนด.
1
2
3
4
5
6
7const 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_.bind(func, thisArg, [partials]): ใช้สำหรับการผูกฟังก์ชัน func กับตัวชี้ thisArg และการส่งอากิวเม้นต์เริ่มต้น (partials) ถ้ามี ทำให้ฟังก์ชันที่ผูกเรียกใช้กับอากิวเม้นต์เหล่านั้นโดยอัตโนมัติ.
1
2
3
4
5
6const greet = function (greeting, punctuation) {
return `${greeting}, ${this.name}${punctuation}`;
};
const boundGreet = _.bind(greet, { name: 'John' }, 'Hello');
console.log(boundGreet('!')); // จะคืนค่า "Hello, John!"
เหล่าฟังก์ชันนี้แสดงถึงวิธีการใช้งานบางส่วนของ Lodash เพื่อจัดการกับฟังก์ชันใน JavaScript คุณสามารถใช้ Lodash เพื่อทำให้การใช้งานและจัดการฟังก์ชันในโปรเจกต์ของคุณง่ายขึ้นและมีประสิทธิภาพมากขึ้น.