Object.extend এবং Object.clone মেথডের ব্যবহার

Prototype এর Object Oriented Programming (OOP) - প্রোটোটাইপ ফ্রেমওয়ার্ক (Prototype Framework) - Web Development

291

Prototype Framework একটি জাভাস্ক্রিপ্ট লাইব্রেরি যা ডোম (DOM) ম্যানিপুলেশন, ইভেন্ট হ্যান্ডলিং এবং AJAX কল করার জন্য সহজ এবং শক্তিশালী টুলস প্রদান করে। এটি Object.extend এবং Object.clone এর মতো শক্তিশালী মেথড প্রদান করে যা জাভাস্ক্রিপ্টের অবজেক্টের সাথে কাজ করতে সহায়ক।

1. Object.extend:

Object.extend মেথডটি দুটি অবজেক্টের মধ্যে প্রোপার্টি কপি করতে ব্যবহৃত হয়। এটি প্রথম অবজেক্টকে পরিবর্তন করে এবং দ্বিতীয় অবজেক্টের সব প্রোপার্টি প্রথম অবজেক্টে কপি করে। এটি একটি খুবই কার্যকরী পদ্ধতি যখন আপনি কোনো অবজেক্টের প্রোপার্টি অন্য একটি অবজেক্টে যুক্ত করতে চান।

Syntax:

Object.extend(destination, source);
  • destination: যে অবজেক্টে প্রোপার্টি কপি করতে চান।
  • source: যেটি থেকে প্রোপার্টি কপি করা হবে।

Example:

var person = {
    name: "John",
    age: 30
};

var address = {
    city: "New York",
    country: "USA"
};

// Using Object.extend to merge 'address' into 'person'
Object.extend(person, address);

console.log(person);
// Output: { name: "John", age: 30, city: "New York", country: "USA" }

এখানে, address অবজেক্টের প্রোপার্টিগুলি person অবজেক্টে যোগ করা হয়েছে। এর ফলে, person অবজেক্টে city এবং country প্রোপার্টি যুক্ত হয়ে গেছে।

Use Cases of Object.extend:

  • Merging Objects: একাধিক অবজেক্ট একত্রে মিশিয়ে একটি বড় অবজেক্ট তৈরি করার জন্য।
  • Inheritance: এক অবজেক্টের প্রোপার্টি অন্য অবজেক্টে কপি করে ইনহেরিটেন্স তৈরি করার জন্য।
  • Updating an Object: কোনো অবজেক্টে নতুন প্রোপার্টি যোগ করতে বা পুরানো প্রোপার্টি আপডেট করতে।

2. Object.clone:

Object.clone মেথডটি একটি অবজেক্টের একটি শ্যালো কপি তৈরি করতে ব্যবহৃত হয়। এটি মূল অবজেক্টের একটি নতুন কপি তৈরি করে, তবে এটি শুধু শ্যালো কপি তৈরি করে অর্থাৎ গভীর কপি (deep clone) নয়। অর্থাৎ, যদি অবজেক্টের মধ্যে অন্য অবজেক্ট থাকে, তবে সেগুলি কপি হবে না, বরং রেফারেন্স কপি হবে।

Syntax:

Object.clone(object);
  • object: যে অবজেক্টটির কপি তৈরি করতে চান।

Example:

var person = {
    name: "John",
    age: 30
};

// Creating a shallow copy of the 'person' object
var newPerson = Object.clone(person);

newPerson.name = "Jane";

console.log(person.name);  // Output: John (original object is unchanged)
console.log(newPerson.name);  // Output: Jane (new object modified)

এখানে, Object.clone ব্যবহার করে person অবজেক্টের একটি কপি তৈরি করা হয়েছে। তবে, newPerson অবজেক্টের পরিবর্তন মূল অবজেক্ট person-এ প্রভাব ফেলবে না, কারণ এটি একটি শ্যালো কপি তৈরি করেছে।

Use Cases of Object.clone:

  • Cloning Objects: একটি অবজেক্টের কপি তৈরি করার জন্য যাতে মূল অবজেক্ট অপরিবর্তিত থাকে।
  • Creating Variations of an Object: একটি অবজেক্টের কপি তৈরি করে কিছু পরিবর্তন করা, যাতে মূল অবজেক্ট অক্ষত থাকে।

Differences Between Object.extend and Object.clone:

FeatureObject.extendObject.clone
PurposeMerges the properties of two objects.Creates a shallow copy of an object.
Modifies OriginalYes, the destination object is modified.No, it creates a new object.
Deep CopyNo, only shallow copy of properties.No, it creates a shallow copy.
Use CaseMerging properties or inheriting.Creating a copy of an object.

Practical Example of Both Together:

var person = {
    name: "John",
    age: 30
};

var address = {
    city: "New York",
    country: "USA"
};

// Cloning the 'person' object before extending it
var personClone = Object.clone(person);

// Extending the cloned object with address
Object.extend(personClone, address);

console.log(person);       // Output: { name: "John", age: 30 }
console.log(personClone);  // Output: { name: "John", age: 30, city: "New York", country: "USA" }

এখানে, প্রথমে Object.clone ব্যবহার করে person অবজেক্টের একটি কপি তৈরি করা হয়েছে এবং পরে Object.extend ব্যবহার করে address অবজেক্টটি সেই কপিতে যোগ করা হয়েছে। এটি নিশ্চিত করে যে person অবজেক্ট অপরিবর্তিত থাকে, এবং কেবল personClone অবজেক্টে পরিবর্তন করা হয়।


  • Object.extend একটি শক্তিশালী টুল যা আপনাকে এক অবজেক্টের প্রোপার্টি অন্য অবজেক্টে কপি করতে সাহায্য করে। এটি inheritance, merging, এবং updating objects এর জন্য উপযুক্ত।
  • Object.clone একটি অবজেক্টের শ্যালো কপি তৈরি করতে ব্যবহৃত হয়, যা মূল অবজেক্টে কোনো পরিবর্তন না করে একটি নতুন অবজেক্ট তৈরি করে।

এই দুটি মেথডের সমন্বয়ে আপনি জাভাস্ক্রিপ্টে অবজেক্ট পরিচালনা, ম্যানিপুলেশন, এবং কাস্টম ক্লোনিং এবং এক্সটেনশনের কাজ সহজে করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...