⊗jsPmClLEA 261 of 505 menu

ফাংশনের লেক্সিকাল এনভায়রনমেন্টের প্রয়োগ JavaScript-এ

ধরুন আমাদের একটি ফাংশন আছে, যার ফলাফল হিসেবে অন্য একটি ফাংশন ফেরত আসে:

function test() { return function() { } }

যদি প্যারেন্ট ফাংশনের কোনো ভেরিয়েবল থাকে, তাহলে সেই ভেরিয়েবলগুলো রিটার্ন করা ফাংশনের লেক্সিকাল এনভায়রনমেন্টে থাকবে:

function test() { let num = 1; // প্যারেন্ট ফাংশনের ভেরিয়েবল return function() { // লেক্সিকাল এনভায়রনমেন্ট = {num: 1} } }

আমাদের রিটার্ন করা ফাংশনের কোডে console.log লিখি, যা num ভেরিয়েবলের মান প্রিন্ট করে:

function test() { let num = 1; return function() { console.log(num); } }

এখন প্যারেন্ট ফাংশন test কে কল করি এবং এর কাজের ফলাফল func ভেরিয়েবলে রাখি:

function test() { let num = 1; return function() { console.log(num); } } let func = test();

func ভেরিয়েবলে রিটার্ন করা ফাংশন লিখা হবে। আমাদের ফাংশনটি কল করি - এর ফলাফল হিসেবে num ভেরিয়েবলের কন্টেন্ট প্রিন্ট হবে:

function test() { let num = 1; return function() { console.log(num); } } let func = test(); func(); // 1 প্রিন্ট করবে

আর যদি ফাংশনের বাইরে num ভেরিয়েবল প্রিন্ট করার চেষ্টা করা হয় - এটি অ্যাক্সেস করা যাবে না:

function test() { let num = 1; return function() { console.log(num); } } console.log(num); // num ভেরিয়েবল এখানে অ্যাক্সেস করা যায় না

আপনি দেখতে পাচ্ছেন, লোকাল ভেরিয়েবল num আমাদের ফাংশনের লেক্সিকাল এনভায়রনমেন্টের সাথে বাঁধা পড়েছে এবং এখন, কোডের যেকোনো জায়গায় এই ফাংশনটি কল করে, আমরা num ভেরিয়েবলের মান পেতে পারি, এমনকি যদি কল করার জায়গায় এই ভেরিয়েবলটি একা অ্যাক্সেস করা না যায়।

আসলে একই ফলাফল পাওয়া যেতে পারে num ভেরিয়েবলকে গ্লোবাল করে:

function test() { return function() { console.log(num); } } let num = 1; // গ্লোবাল ভেরিয়েবল let func = test(); func(); // 1 প্রিন্ট করবে

যাইহোক, এখানে একটি গুরুত্বপূর্ণ পার্থক্য থাকবে: নতুন ভার্সনে num ভেরিয়েবল ফাংশনের বাইরে পরিবর্তন করা যেতে পারে (যেহেতু এটি গ্লোবাল), আর পুরানো ভার্সনে - যাবে না।

কোড রান না করেই নির্ধারণ করুন, কনসোলে কী প্রিন্ট হবে:

function test() { let num1 = 1; let num2 = 2; return function() { return num1 + num2; } } let func = test(); console.log(func());

কোড রান না করেই নির্ধারণ করুন, কনসোলে কী প্রিন্ট হবে:

function test() { let num1 = 1; let num2 = 2; return function() { return num1 + num2; } } console.log(test()());

কোড রান না করেই নির্ধারণ করুন, কনসোলে কী প্রিন্ট হবে:

function test() { let num1 = 1; return function() { return num1 + num2; } } let num2 = 2; let func = test(); console.log(func());

কোড রান না করেই নির্ধারণ করুন, কনসোলে কী প্রিন্ট হবে:

function test() { let num = 1; return function() { return num; } } let num = 2; let func = test(); console.log(func());
বাংলা
AfrikaansAzərbaycanБългарскиБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
আমরা সাইট পরিচালনা, বিশ্লেষণ এবং ব্যক্তিগতকরণের জন্য কুকি ব্যবহার করি। ডেটা প্রক্রিয়াকরণ গোপনীয়তা নীতি অনুযায়ী করা হয়।
সব গ্রহণ করুন কনফিগার করুন প্রত্যাখ্যান করুন