জাভাস্ক্রিপ্টে বন্ধ কী কী এবং তারা কীভাবে কাজ করে?



ফাংশন তৈরির সময়, কোনও ফাংশন তৈরি হওয়ার সময় জাভাস্ক্রিপ্টে বন্ধগুলি তৈরি করা হয়। কোডগুলি ব্যবহার করার সময় এটি আরও ভাল নিয়ন্ত্রণ সরবরাহ করে।

এটি একটি ফাংশন-ভিত্তিক ভাষা যা ব্যবহারকারীকে প্রচুর স্বাধীনতা দেয়। আপনি গতিশীলভাবে একটি ফাংশন তৈরি করতে পারেন, এটি অন্য ভেরিয়েবলের অনুলিপি করতে পারেন বা অন্য ফাংশনে আর্গুমেন্ট হিসাবে পাস করতে পারেন এবং পরে কোনও অন্য জায়গা থেকে কল করতে পারেন। ফাংশন তৈরির সময়, কোনও ফাংশন তৈরি হওয়ার সময় জাভাস্ক্রিপ্টে বন্ধগুলি তৈরি করা হয়। এই নিবন্ধে, আমরা নিম্নলিখিত ক্রমটিতে ক্লোজারগুলি বুঝতে হবে:

জাভাস্ক্রিপ্টে বন্ধের পরিচিতি

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





কোডার - জাভাস্ক্রিপ্টে ক্লোজার্স - এডুরেকা

অবজেক্টের অ্যারে তৈরি করা

বিকাশকারীদের বেশিরভাগই সচেতনভাবে বা অজ্ঞান হয়ে জাভাস্ক্রিপ্টে ক্লোজার ব্যবহার করে। কোডগুলি ব্যবহার করার সময় এটি আরও ভাল নিয়ন্ত্রণ সরবরাহ করে। এছাড়াও, এটি যে কোনও সময়ে সর্বাধিক জিজ্ঞাসিত প্রশ্ন ।



উদাহরণ:

ফাংশন foo () x var x = 10 ফাংশন অভ্যন্তরীণ () {রিটার্ন x} অভ্যন্তরীণ ফিরে} var get_func_inner = foo () কনসোল.লগ (get_func_inner ()) কনসোল.লগ (get_func_inner ()) কনসোল.লগ (get_func_inner ())

আউটপুট:

10
10
10



এখানে, আপনি অ্যাক্সেস করতে পারেন পরিবর্তনশীল x যা ফাংশন অভ্যন্তর () এর মাধ্যমে ফাংশন ফু () এ সংজ্ঞায়িত করা হয় কারণ পরবর্তীকালে এনক্লোজিং ফাংশন কার্যকর করার সময় এনকোলেসিং ফাংশনের স্কোপ চেইন সংরক্ষণ করে। সুতরাং, অভ্যন্তরীণ ফাংশনটি এর স্কোপ চেইনের মাধ্যমে x এর মান জানে। এইভাবে আপনি জাভাস্ক্রিপ্টে ক্লোজারগুলি ব্যবহার করতে পারেন।

ব্যবহারিক বন্ধ

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

ফলস্বরূপ, আপনি যে কোনও জায়গায় একটি ক্লোজার ব্যবহার করতে পারেন যা আপনি কেবলমাত্র একটি একক পদ্ধতিতে কোনও অবজেক্ট ব্যবহার করতে পারেন।

উদাহরণ:

ফাংশন মেকসাইজার (আকার) {ফাংশন রিটার্ন () {ডকুমেন্ট.body.style.fontSize = আকার + 'px'} size আকার আকার = মেকসাইজার (12) ভের সাইজ 14 = মেকসাইজার (14) ভের সাইজ 16 = মেকসাইজার (16)

উপরের উদাহরণটি সাধারণত কলব্যাক হিসাবে সংযুক্ত থাকে: ইভেন্টটির প্রতিক্রিয়াতে কার্যকর করা হয় এমন একক ফাংশন।

ব্যাপ্তি চেইন

জাভাস্ক্রিপ্টে বন্ধের তিনটি স্কোপ রয়েছে যেমন:

  • স্থানীয় সুযোগ
  • বহিরাগত কার্যাদি সুযোগ
  • গ্লোবাল স্কোপ

একটি সাধারণ ভুল বুঝতে পারছে না যে, যেখানে বাহ্যিক ক্রিয়াটি নিজেই একটি নেস্টেড ফাংশন, সেখানে বাহ্যিক ক্রিয়াকলাপের সুযোগগুলিতে অ্যাক্সেসের মধ্যে রয়েছে বাহ্যিক ফাংশনের ঘেরের সুযোগ, কার্যকরভাবে ফাংশন স্কোপের একটি শৃঙ্খলা তৈরি করা।

// গ্লোবাল স্কোপ ভার x = 10 ফাংশন যোগফল (ক) {রিটার্ন ফাংশন (খ) {রিটার্ন ফাংশন (সি) {// বহিরাগত ফাংশন স্কোপ রিটার্ন ফাংশন (ডি) {// স্থানীয় সুযোগ একটি + বি + সি + ডি + x}}}} কনসোল.লগ (যোগফল (1) (2) (3) (4)) // লগ 20

এটি বেনামে ফাংশন ছাড়াও লেখা যেতে পারে:

// গ্লোবাল স্কোপ ভার x = 10 ফাংশনের যোগফল (ক) {রিটার্ন ফাংশন যোগফল (বি) {রিটার্ন ফাংশন যোগফল 3 (সি) {// বহিরাগত ফাংশন স্কোপ রিটার্ন ফাংশন সমষ্টি (ডি) {// স্থানীয় স্কোপ a + b + c ফেরত দেয় + ডি + এক্স}}}} ভার এস = সম (1) ভর এস 1 = এস (2) ভর এস 2 = এস 1 (3) ভরা এস 3 = এস 2 (4) কনসোল.লগ (এস 3) // লগ 20

উপরের উদাহরণে, নেস্টেড ফাংশনগুলির একটি সিরিজ রয়েছে যার মধ্যে কোনও ফাংশনের বাইরের স্কোপের অ্যাক্সেস রয়েছে hus সুতরাং, আপনি বলতে পারেন যে ক্লোজারগুলির সমস্ত বাহ্যিক ফাংশন স্কোপগুলির মধ্যে সেগুলি ঘোষিত হয়েছিল to

লুপের মধ্যে বন্ধ হওয়া

আপনি জাভাস্ক্রিপ্টে ক্লোজারগুলি ব্যবহার করতে পারেন প্রতিটি সূচকে একটি বেনামী ফাংশন সঞ্চয় করতে অ্যারে । আসুন একটি উদাহরণ নেওয়া যাক এবং কীভাবে লুপের মধ্যে ক্লোজারগুলি ব্যবহার করা হয় তা দেখুন।

উদাহরণ:

বহিরাগত () {var arr = [] var i এর জন্য (i = 0 i) ফাংশন<3 i++) { // storing anonymus function arr[i] = function () { return i } } // returning the array. return arr } var get_arr = outer() console.log(get_arr[0]()) console.log(get_arr[1]()) console.log(get_arr[2]())

আউটপুট:




এটির সাথে আমরা আমাদের নিবন্ধের শেষে এসেছি। আমি আশা করি জাভাস্ক্রিপ্টে ক্লোজারগুলি কীভাবে কাজ করে এবং কোডটির আরও ভাল নিয়ন্ত্রণ পেতে কীভাবে সেগুলি ব্যবহৃত হয় তা আপনি বুঝতে পেরেছিলেন।

এখন আপনি জাভাস্ক্রিপ্ট-এ ক্লোজার সম্পর্কে জানেন, এটির জন্য দেখুন লিখেছেন এডুরেকা। ওয়েব ডেভেলপমেন্ট শংসাপত্র প্রশিক্ষণ আপনাকে এইচটিএমএল 5, সিএসএস 3, টুইটার বুটস্ট্র্যাপ 3, জ্যাকুয়ারি এবং গুগল এপিআই ব্যবহার করে কীভাবে চিত্তাকর্ষক ওয়েবসাইট তৈরি করতে শিখতে এবং এটি অ্যামাজন সিম্পল স্টোরেজ সার্ভিসে (এস 3) স্থাপন করতে সহায়তা করবে।

আমাদের জন্য একটি প্রশ্ন আছে? দয়া করে এটি 'জাভাস্ক্রিপ্টে বন্ধকরণের' মন্তব্যে বিভাগে উল্লেখ করুন এবং আমরা আপনার কাছে ফিরে আসব will