কম্পিউটার

জাভাস্ক্রিপ্ট পদ্ধতি:Object.assign()

জাভাস্ক্রিপ্টের একটি অবজেক্ট ক্লাস রয়েছে যেটিতে সমস্ত ধরণের পদ্ধতি রয়েছে যা আমরা সেই বস্তুগুলিকে পরিচালনা করতে ব্যবহার করতে পারি। এই নিবন্ধে, আমরা Object.assign() পদ্ধতিটি দেখব এবং এটি কীভাবে ব্যবহার করা হয় তা প্রদর্শন করব৷

একটু পটভূমি

একটি অনুস্মারক হিসাবে একটি বস্তু হল জাভাস্ক্রিপ্টের একটি ডাটা টাইপ, পাইথনের অভিধানের মতো, যেটিকে আমরা কী বলে থাকি:মান জোড়া। ধরা যাক আমাদের একটি বস্তু আছে, আসুন একে হ্যারি বলি। এতে কী:মান জোড়া থাকতে পারে যা দেখতে এইরকম:

let Harry = {
 	firstName: 'Harry',
 	lastName: 'Potter',
 	age: 11,
 	house: 'Gryffindor',
 	pet: {
   	  name: 'Hedwig',
        animal: 'owl'
 	}
};

এই পরিস্থিতিতে থিমের মূল নিয়ম হল কোলনের বাম দিকের সম্পত্তির নাম হল কী, এবং ডানদিকের জিনিস হল মান৷ বেশির ভাগ কী এবং মান মোটামুটি সহজবোধ্য - শুধুমাত্র একটি যা সামান্য সূক্ষ্ম হতে পারে তা হল শেষ সম্পত্তি:পোষা প্রাণী। এই উদাহরণে পোষা প্রাণী এখনও মূল। মান, যাইহোক, এমন একটি বস্তু যার আরও দুটি কী আছে:মান জোড়া। এটাকেই আমরা বলি নেস্টেড অবজেক্ট।

Object.assign(target, …sourceObjs);

assign() নামে একটি অবজেক্ট পদ্ধতি আছে যেটি এক বা একাধিক সোর্স অবজেক্ট নিতে এবং একটি টার্গেট অবজেক্টে কপি করতে ব্যবহার করা যেতে পারে। এটি কী করে তা দেখতে সরাসরি কোডে যাওয়া যাক:

let hpChar = {
 firstName: 'Harry',
 lastName: 'Potter',
 age: 11,
 house: 'Gryffindor',
 pet: {
   name: 'Hedwig',
   animal: 'owl'
 }
}
 
Object.assign({}, hpChar);
console.log(hpChar, '\n');
Object.assign(hpChar, {
 	firstName: 'Hermione',
 	lastName: 'Grainger',
 	pet: {
   		name: 'Crookshanks',
   		animal: 'cat'
 	}
}
 
);
 
console.log(hpChar)

আসুন একসাথে কোডের মাধ্যমে চলুন। আমরা hpChar নামক আক্ষরিক বস্তু দিয়ে শুরু করি। এই hpChar এর একটি প্রথম নাম, শেষ নাম, বয়স, বাড়ি এবং পোষা সম্পত্তি রয়েছে। সেই পোষা সম্পত্তি নিজেই একটি বস্তু এবং এর নিজস্ব কিছু কী এবং মান রয়েছে।

এর পরে, আমাদের কাছে আমাদের পদ্ধতির প্রথম উদাহরণ রয়েছে যা আমরা এখানে কথা বলতে এসেছি। Object.assign দুই বা ততোধিক প্যারামিটার লাগে। প্রথমটি হল সর্বদা লক্ষ্য বস্তু আপনি মান নির্ধারণ করতে চান. এই উদাহরণে, এটি একটি খালি বস্তু।

দ্বিতীয় প্যারামিটারটি উপরে সংজ্ঞায়িত আমাদের অবজেক্ট। লক্ষ্য বস্তু (আমাদের প্রথম প্যারামিটার) বরাদ্দ করার জন্য আমরা এই উৎস উপাদানটি গ্রহণ করতে যাচ্ছি।

নিম্নলিখিত লাইনটি ফলাফলটিকে কনসোলে লগ করে:

81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগ দেওয়ার পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷

গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় কাটিয়েছে।

{ firstName: 'Harry',
  lastName: 'Potter',
  age: 11,
  house: 'Gryffindor',
  pet: { name: 'Hedwig', animal: 'owl' } }

কিছুই খুব ভয়ঙ্কর ভিন্ন, তাই না? কারণ আমরা একটি খালি বস্তুতে hpChar বরাদ্দ করেছি - আমরা মূলত বস্তুটি ক্লোন করেছি। যদি আমরা আবার এটা করতে হয়, কিন্তু কিছু মান পরিবর্তন? এইবার খালি অবজেক্টের পরিবর্তে, আসুন hpChar অবজেক্টের সাথে প্রতিস্থাপন করি - এইবার এটিই হবে আমাদের লক্ষ্য। দ্বিতীয় প্যারামিটারে কিছু মান পরিবর্তন করা যাক। যতক্ষণ আপনি চাবিগুলি একই রাখবেন ততক্ষণ মান নিয়ে খেলতে নির্দ্বিধায়।

এখানে আমি প্রতিস্থাপন করতে যাচ্ছি মান আছে. টার্গেট অবজেক্টের মান পরিবর্তন করার প্রয়োজন না হলে, আপনাকে সোর্স অবজেক্টে এর মান স্পষ্টভাবে বলতে হবে না।

Object.assign(hpChar, {
 	firstName: 'Hermione',
 	lastName: 'Grainger',
 	pet: {
   		name: 'Crookshanks',
   		animal: 'cat'
 	}
}
 
);

দ্বিতীয়বার যখন আমরা কনসোলে ফলাফলটি লগ করি, এটি নতুন মান সহ বৈশিষ্ট্যগুলিকে ওভাররাইট করে লক্ষ্য বস্তুটি ফিরিয়ে দেয়। এখন আমাদের কনসোল এই মত দেখায়:

{ firstName: 'Hermione',
  lastName: 'Grainger',
  age: 11,
  house: 'Gryffindor',
  pet: { name: 'Crookshanks', animal: 'cat' } }

একই বৈশিষ্ট্যের সাথে দুটি বস্তুকে একত্রিত করলে এটি দেখতে কেমন লাগে। এখন আমরা যদি তিনটি বস্তুকে ভিন্ন ভিন্ন বৈশিষ্ট্যের সাথে একত্রিত করি? আপনি কি ঘটতে আশা করেন?

var obj1 = {
 foo: 1
}
 
var obj2 = {
 bar: 2
}
 
var obj3 = {
 baz: 3
}
 
Object.assign(obj1, obj2, obj3)
 
console.log(obj1);

Obj1 আমাদের লক্ষ্য বস্তু. Obj2 এবং obj3 হল আমাদের সোর্স অবজেক্ট। যারা আমাদের লক্ষ্য বস্তুর মধ্যে মার্জ করা হবে. কোনো বৈশিষ্ট্য ওভারল্যাপ না হওয়ার কারণে, সমস্ত বৈশিষ্ট্য তাদের নিজ নিজ মানের সাথে obj1-এ মার্জ করা হবে।

{ foo: 1, bar: 2, baz: 3 }

সেখানে আপনি এটা আছে! Object.assign() এর একটি কার্যকরী বাস্তবায়ন। একবার আপনি এখানে ধারণাগুলি বুঝতে পারলে, আপনি একটি জাভাস্ক্রিপ্ট ফ্রেমওয়ার্ক শেখার এক ধাপ কাছাকাছি!

আরো জন্য প্রস্তুত?

আপনার অধ্যয়নকে আরও এগিয়ে নিতে এই টিউটোরিয়ালগুলি দেখুন...

JavaScript Object.keys()

জাভাস্ক্রিপ্টের জন্য একটি ধাপে ধাপে নির্দেশিকা চলুন

জাভাস্ক্রিপ্ট প্রকার

জাভাস্ক্রিপ্ট স্ট্রিং ধারণ করে:ধাপে ধাপে নির্দেশিকা

জাভাস্ক্রিপ্ট ভেরিয়েবল


  1. জাভাস্ক্রিপ্টে শেয়ার করার পদ্ধতি

  2. জাভাস্ক্রিপ্টে RegExp অবজেক্ট।

  3. জাভাস্ক্রিপ্টে অবজেক্ট ইনিশিয়ালাইজার

  4. জাভাস্ক্রিপ্টে একটি ক্লাসে স্ট্যাটিক পদ্ধতিগুলি কীভাবে বরাদ্দ করবেন?