মান দিয়ে পাস করুন
মান দ্বারা পাস , ভেরিয়েবলের মানকে আর্গুমেন্ট হিসাবে সরাসরি পাস করে একটি ফাংশন বলা হয়। ফাংশনের ভিতরে আর্গুমেন্ট পরিবর্তন করলে ফাংশনের বাইরে থেকে পাস করা ভেরিয়েবলকে প্রভাবিত করে না। জাভাস্ক্রিপ্ট সর্বদা মান দ্বারা পাস তাই ভেরিয়েবলের মান পরিবর্তন করলে কখনোই অন্তর্নিহিত আদিম (স্ট্রিং বা সংখ্যা) পরিবর্তন হয় না।
নিম্নলিখিত উদাহরণে, ভেরিয়েবল 'a' মান 1 বরাদ্দ করেছে। কিন্তু ফাংশন 'পরিবর্তন'-এর ভিতরে এটি মান 2 দিয়ে বরাদ্দ করা হয়েছে। যেহেতু জাভাস্ক্রিপ্ট সর্বদা একটি মান পাস , প্রদর্শিত আউটপুট '1' হবে কিন্তু '2' নয়।
উদাহরণ
<html>
<body>
<script>
let a = 1;
let change = (val) => {
val = 2
}
change(a);
document.write(a);
</script>
</body>
</html> আউটপুট
1
রেফারেন্স দ্বারা পাস
কিছু উদাহরণ আছে যে একটি ফাংশন কল করার জন্য আর্গুমেন্টের পরিবর্তে ঠিকানা পাস করা হয়। সেই সময়ে, ফাংশনের ভিতরে মান পরিবর্তন করলে ফাংশনের বাইরে থেকে পাস করা ভেরিয়েবলকে প্রভাবিত করে। একে বলা হয় রেফারেন্স বাই . জাভাস্ক্রিপ্টে বেশিরভাগ অ্যারে এবং অবজেক্টগুলি অনুসরণ করে রেফারেন্স দ্বারা পাস৷৷
নিম্নলিখিত উদাহরণে 'a' নামের একটি বস্তুকে 'পরিবর্তন' ফাংশনের বাইরে ঘোষণা করা হয়েছে। এখানে একজনের মনে রাখা উচিত যে ভেরিয়েবল 'a' পরিবর্তিত হয়েছে কিন্তু 2 মান দিয়ে বরাদ্দ করা হয়নি, যেমন 2 উদাহরণে দেখানো হয়েছে। A রেফারেন্স দ্বারা পাস ঘটে যখন মিউটেশন কিছু ঘটেছিল.
উদাহরণ-1
<html>
<body>
<script>
let a = {num:1};
let change = (val) => {
val.num = 2
}
change(a);
document.write(JSON.stringify(a));
</script>
</body>
</html> আউটপুট
{"num":2}
মিউটেশন এর পরিবর্তে নিম্নলিখিত উদাহরণে , ভেরিয়েবল 'a' অর্পণ করা হয়েছে মান 2 সহ। তাই মান পাস করুন সঞ্চালিত হয় এবং বাইরের পরিবর্তনশীলের উপর কোন প্রভাব পড়বে না।
উদাহরণ-2
<html>
<body>
<script>
let a = {num : 1};
let change = (val) => {
val = {num :2};
}
change(a);
document.write(JSON.stringify(a));
</script>
</body>
</html> আউটপুট
{"num":1}