Lodash এর _.bind() এবং _.bindKey() ফাংশন দুটি অত্যন্ত শক্তিশালী টুল যা JavaScript এর function binding-এর কাজকে সহজ এবং আরও নির্ভরযোগ্য করে তোলে। এগুলি মূলত function এর context (this) এবং arguments নির্ধারণ করার জন্য ব্যবহৃত হয়। এই ফাংশনগুলির মাধ্যমে আপনি একটি ফাংশনকে নির্দিষ্ট context এর সাথে "bind" করতে পারেন, যাতে এটি নির্দিষ্ট object বা ভ্যালু দ্বারা কল হয়।
১. _.bind() ফাংশন
_.bind() ফাংশনটি একটি function কে একটি নির্দিষ্ট this context এবং পূর্বনির্ধারিত arguments এর সাথে bind করে দেয়, অর্থাৎ আপনি যখন function টি কল করবেন তখন সেটি এই নির্দিষ্ট this context এবং arguments ব্যবহার করবে। এটি মূলত JavaScript এর Function.prototype.bind() এর মতো কাজ করে, কিন্তু Lodash এর version আরও সহজ এবং স্থিতিশীল।
Syntax:
_.bind(func, thisArg, [args])
- func: যেটি function আপনি bind করতে চান।
- thisArg: যেটি
thisএর মান হিসাবে ব্যবহার করতে চান (যে object এর সাথে function টি কাজ করবে)। - [args]: Optional, একটি array যেগুলি function call এর সময় parameters হিসেবে ব্যবহার হবে।
উদাহরণ:
const _ = require('lodash');
let person = {
name: 'John',
greet: function (message) {
console.log(`${message}, ${this.name}`);
}
};
// Function কে bind করা
let greetJohn = _.bind(person.greet, person, 'Hello');
greetJohn(); // "Hello, John"
এখানে, _.bind() ব্যবহার করে আমরা greet ফাংশনকে person object এর সাথে bind করেছি এবং যখন greetJohn() কল করা হয়েছে, তখন this এর মান person অবজেক্ট হিসেবে ব্যবহার হয়েছে। আমরা Hello কে arguments হিসেবে pass করেছি।
২. _.bindKey() ফাংশন
_.bindKey() ফাংশনটি মূলত _.bind() এর মতো কাজ করে, তবে এটি একটি object এর property key হিসেবে দেয়া function কে bind করার জন্য ব্যবহৃত হয়। _.bind() ব্যবহার করলে আপনি function কে সরাসরি bind করতে পারেন, কিন্তু _.bindKey() আপনাকে একটি object এর property key দিয়ে function কে bind করার সুযোগ দেয়।
Syntax:
_.bindKey(object, key, [args])
- object: যে object এ function এর property key রয়েছে।
- key: যে property key (function) আপনি bind করতে চান।
- [args]: Optional, function call এর সময় parameters হিসেবে যে arguments গুলি pass করতে চান।
উদাহরণ:
const _ = require('lodash');
let person = {
name: 'Sarah',
greet: function (message) {
console.log(`${message}, ${this.name}`);
}
};
// Function কে bindKey ব্যবহার করে bind করা
let greetSarah = _.bindKey(person, 'greet', 'Hi');
greetSarah(); // "Hi, Sarah"
এখানে, _.bindKey() ব্যবহার করে আমরা person object এর greet property কে bind করেছি এবং Hi কে arguments হিসেবে pass করেছি। this এর মান person অবজেক্ট হিসেবে ব্যবহৃত হয়েছে।
_.bind() এবং _.bindKey() এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | _.bind() | _.bindKey() |
|---|---|---|
| Function Binding | সরাসরি function কে bind করে | একটি object এর property key দিয়ে function কে bind করে |
| Context Binding | this context সরাসরি bind করা হয় | this context bind করার সাথে সাথে function key এর মাধ্যমে binding করা হয় |
| Usage | সাধারণ function এর জন্য | যখন object এ একটি property key দিয়ে function থাকা থাকে |
উপসংহার
Lodash এর _.bind() এবং _.bindKey() ফাংশনগুলি function binding এর জন্য অত্যন্ত কার্যকরী টুল। _.bind() সাধারণত function এর context এবং parameters নির্ধারণ করতে ব্যবহৃত হয়, আর _.bindKey() object এর property key ব্যবহার করে function কে bind করতে সহায়তা করে। এই ফাংশনগুলি JavaScript কোডের স্থিতিশীলতা এবং কার্যকারিতা বাড়ায়, বিশেষ করে যখন আপনি function এর context (this) নিয়ন্ত্রণ করতে চান।
Read more