কম্পিউটার

জাভাস্ক্রিপ্টের মান দ্বারা জাভাস্ক্রিপ্ট পাস ব্যাখ্যা করুন?


জাভাস্ক্রিপ্ট একটি পাস বাই মান ভাষা। কিন্তু বস্তুর জন্য, মান তাদের রেফারেন্স। সুতরাং উদাহরণস্বরূপ, যদি আপনি প্যারামিটার হিসাবে একটি ফাংশনে একটি int পাস করেন এবং ফাংশনে এর মান বৃদ্ধি করেন, তাহলে কলারের প্রসঙ্গে এর মান আপডেট করা হবে না -

উদাহরণ

let i = 0;
function increment(x) {
   x = x + 1
   console.log(x)
}
increment(i)
console.log(i)

আউটপুট

1
0

আপনি যখন একটি অবজেক্ট পাস করেন এবং ফাংশনের প্রসঙ্গে সেই বস্তুর রেফারেন্স আপডেট করেন, এটি বস্তুটিকে প্রভাবিত করবে না। কিন্তু আপনি যদি বস্তুর অভ্যন্তরীণ পরিবর্তন করেন, তাহলে সেটি বস্তুতে প্রতিফলিত হবে।

উদাহরণ

let obj = {'foo': 'bar'};
function updateRef(x) {
   // x's local ref gets updates, doesn't affect obj
   x = {}
}
function addHelloWorld(y) {
   // Add new prop to object referenced by y
   y['hello'] = 'world';
}
console.log(obj)
updateRef(obj)
console.log(obj)
addHelloWorld(obj)
console.log(obj)

আউটপুট

{ foo: 'bar' }
{ foo: 'bar' }
{ foo: 'bar', hello: 'world' }

নোট করুন যে অবজেক্ট রেফারেন্স পরিবর্তন বস্তুকে প্রভাবিত করেনি। স্থানীয় পরিবর্তনশীল x পুনরায় বরাদ্দ করা হয়েছে। দ্বিতীয় ফাংশনে যাইহোক, y অবজেক্টকে রেফার করছে এবং সেই বস্তুর অভ্যন্তরীণ অবস্থাকে মিউট করেছে। এটি মূল বস্তুর পরিবর্তন ঘটায়।


  1. জাভাস্ক্রিপ্টে ম্যাপ অবজেক্ট।

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

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

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