_.extend এবং _.defaults দিয়ে অবজেক্ট এক্সটেন্ড করা

Object Functions - আন্ডারস্কোর.জেএস (underscorejs) - Web Development

263

_.extend ফাংশন

_.extend হল Underscore.js এর একটি অত্যন্ত ব্যবহৃত ইউটিলিটি ফাংশন যা একটি বা একাধিক অবজেক্টের সমস্ত প্রপার্টি অন্য একটি অবজেক্টে কপি করে। এটি মূলত অবজেক্ট ম্যানিপুলেশনের জন্য ব্যবহৃত হয়, যেখানে আপনি একাধিক অবজেক্টের প্রপার্টি একত্রিত করতে পারেন।

Sintax:

_.extend(destination, *sources)
  • destination: যে অবজেক্টে আপনি প্রপার্টি কপি করতে চান, অর্থাৎ টার্গেট অবজেক্ট।
  • sources: এক বা একাধিক অবজেক্ট, যার প্রপার্টিগুলি destination অবজেক্টে কপি করা হবে।

উদাহরণ:

// দুইটি অবজেক্ট
let person = { name: 'John', age: 30 };
let contact = { email: 'john@example.com', phone: '1234567890' };

// _.extend ব্যবহার করে person অবজেক্টে contact অবজেক্টের প্রপার্টি যুক্ত করা
_.extend(person, contact);

console.log(person);
// আউটপুট: { name: 'John', age: 30, email: 'john@example.com', phone: '1234567890' }

এখানে, _.extend ফাংশনটি contact অবজেক্টের সমস্ত প্রপার্টি person অবজেক্টে কপি করে দিয়েছে। এর ফলে person অবজেক্টে নতুন প্রপার্টি যেমন email এবং phone যোগ হয়েছে।

_.defaults ফাংশন

_.defaults ফাংশনটি একটু ভিন্নভাবে কাজ করে। এটি কেবলমাত্র প্রথম অবজেক্টে সেই প্রপার্টি কপি করবে যদি সেই প্রপার্টি সেখানে উপস্থিত না থাকে। এর মানে হল, _.defaults ফাংশনটি আপনার টার্গেট অবজেক্টে নতুন প্রপার্টি যোগ করবে যদি সেই প্রপার্টি ইতোমধ্যে সেখানে না থাকে। এটি মূলত আপনার অবজেক্টকে "ডিফল্ট মান" সরবরাহ করার জন্য ব্যবহৃত হয়।

Sintax:

_.defaults(object, *defaults)
  • object: যে অবজেক্টে আপনি ডিফল্ট প্রপার্টি যোগ করতে চান।
  • defaults: এক বা একাধিক অবজেক্ট, যা ডিফল্ট মান সরবরাহ করবে যদি সেই প্রপার্টি object অবজেক্টে উপস্থিত না থাকে।

উদাহরণ:

// দুটি অবজেক্ট
let user = { name: 'John' };
let defaultSettings = { name: 'Unknown', age: 25, location: 'USA' };

// _.defaults ব্যবহার করে user অবজেক্টে defaultSettings এর ডিফল্ট প্রপার্টি যোগ করা
_.defaults(user, defaultSettings);

console.log(user);
// আউটপুট: { name: 'John', age: 25, location: 'USA' }

এখানে, _.defaults ফাংশনটি user অবজেক্টে ডিফল্ট মান হিসেবে age এবং location যোগ করেছে, যেহেতু user অবজেক্টে সেগুলি উপস্থিত ছিল না। তবে name প্রপার্টি আগেই user অবজেক্টে উপস্থিত ছিল, তাই এটি পরিবর্তন হয়নি।


_.extend এবং _.defaults এর মধ্যে পার্থক্য

ফিচার_.extend_.defaults
কাজের পদ্ধতিএক বা একাধিক অবজেক্টের প্রপার্টি কপি করে টার্গেট অবজেক্টে যুক্ত করে।কেবলমাত্র টার্গেট অবজেক্টে প্রপার্টি যোগ করা হয়, যদি তা সেখানে না থাকে।
ডেটা ওভাররাইট করাযদি প্রপার্টি টার্গেট অবজেক্টে আগে থেকেই থাকে, তবে তা ওভাররাইট করা হয়।পুরানো মান অপরিবর্তিত থাকে, নতুন মান যোগ করা হয় শুধুমাত্র যদি প্রপার্টি না থাকে।
ব্যবহারযখন একাধিক অবজেক্টের প্রপার্টি একত্রিত করতে চান।যখন ডিফল্ট মান সরবরাহ করতে চান যদি অবজেক্টে কিছু প্রপার্টি অনুপস্থিত থাকে।

সারাংশ

  • _.extend ফাংশনটি মূলত একাধিক অবজেক্টের প্রপার্টি একত্রিত করতে ব্যবহৃত হয়, এবং এটি যদি টার্গেট অবজেক্টে আগে থেকেই কোন প্রপার্টি থাকে তবে সেই প্রপার্টি ওভাররাইট করে।
  • _.defaults ফাংশনটি প্রপার্টি কেবলমাত্র যোগ করবে যদি সেই প্রপার্টি টার্গেট অবজেক্টে উপস্থিত না থাকে। এটি ডিফল্ট মান প্রদান করার জন্য উপযুক্ত।

এটি আপনার অবজেক্ট ম্যানিপুলেশনে সঠিক ফাংশন নির্বাচন করতে সহায়তা করবে, নির্ভর করে আপনি কী ধরনের ডেটা ম্যানিপুলেশন করতে চান।

Content added By
Promotion

Are you sure to start over?

Loading...