কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে Object.assign() কী?

Object.assign()

এই মেথডটি এক বা একাধিক সোর্স অবজেক্ট (source objects) কে একটি টার্গেট অবজেক্ট (target object)-এ কপি করতে ব্যবহৃত হয়। এটি গেটার ও সেটার ইনভোক করে কারণ এটি সোর্সে 'get' এবং টার্গেটে 'set' ব্যবহার করে। এটি টার্গেট অবজেক্ট ফেরত দেয় যেটিতে সোর্স অবজেক্টের প্রপার্টি ও ভ্যালু কপি হয়ে থাকে। এই মেথড null বা undefined সোর্স ভ্যালু থ্রো করে না।

সিনট্যাক্স

Object.assign(target, ...sourceObjects);

এটি সোর্স অবজেক্টগুলো এবং একটি টার্গেট অবজেক্ট প্যারামিটার হিসেবে নেয় এবং সোর্স অবজেক্টগুলোর প্রপার্টি টার্গেট অবজেক্টে পুশ করে টার্গেট অবজেক্ট ফেরত দেয়।

উদাহরণ-১

নিচের উদাহরণে, সোর্স অবজেক্ট গুলো "obj1", "obj2", এবং "obj3" এর প্রপার্টিগুলো একটি টার্গেট অবজেক্ট "obj"-এ পুশ করা হয়েছে এবং টার্গেট অবজেক্ট আউটপুট হিসেবে ফেরত দিয়েছে।

<html> <body> <script> 
  var obj1 = { a: 10, b:20 }; 
  var obj2 = { c: 30, d:40 }; 
  var obj3 = { e: 50 }; 
  var obj = Object.assign({}, obj1, obj2, obj3); 
  document.write(JSON.stringify(obj)); 
</script> </body> </html>

আউটপুট

{"a":10,"b":20,"c":30,"d":40,"e":50}

উদাহরণ-২

নিচের উদাহরণে, কিছু প্রপার্টির মাল্টিপল ইনস্ট্যান্স (multiple instances) রয়েছে। এই কেসে Object.assign() মেথডটি প্রপার্টির সবচেয়ে শেষে এসাইন করা ভ্যালু নেয়। উদাহরণস্বরূপ, সব তিনটি অবজেক্টে "c" প্রপার্টি আছে এবং মানগুলো যথাক্রমে ১, ৩ এবং ০। obj3-এ 'c'-র ভ্যালু ০ সবচেয়ে শেষে এসাইন হয়েছে, তাই আউটপুটে প্রপার্টি 'c' এর মান ০ দেখাচ্ছে।

<html> <body> <script> 
  var obj1 = { a: 10, b:20, c:1 }; 
  var obj2 = { b: 30, d:10, c:3 }; 
  var obj3 = { e: 60, d:70, c:0 }; 
  var obj = Object.assign({}, obj1, obj2, obj3); 
  document.write(JSON.stringify(obj)); 
</script> </body> </html>

আউটপুট

{"a":10,"b":30,"c":0,"d":70,"e":60}
  1. জাভাস্ক্রিপ্টে Map অবজেক্ট

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

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

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