আমি তিনটি জেএস পড়ছি এবং একটি প্যাটার্ন লক্ষ্য করেছি যেখানে ফাংশনগুলি এর মতো সংজ্ঞায়িত করা হয়েছে:
var foo = ( function () {
var bar = new Bar();
return function ( ) {
//actual logic using bar from above.
//return result;
};
}());
(উদাহরণ রাইকাস্ট পদ্ধতি দেখুন এখানে )।
সাধারণ জাতীয় পদ্ধতির প্রকরণটি দেখতে এরকম হবে:
var foo = function () {
var bar = new Bar();
//actual logic.
//return result;
};
প্রথম সংস্করণটির সাথে তুলনা করা সাধারণ প্রকরণের তার মধ্যে পৃথক বলে মনে হচ্ছে:
- এটি একটি স্ব-কার্যকরকারী কার্যের ফলাফল নির্ধারণ করে।
- এটি এই ফাংশনের মধ্যে স্থানীয় ভেরিয়েবলকে সংজ্ঞায়িত করে।
- এটি যুক্তিযুক্ত আসল ফাংশনটি প্রদান করে যা স্থানীয় ভেরিয়েবলের ব্যবহার করে।
সুতরাং মূল পার্থক্যটি হ'ল প্রথম প্রকরণে বারটি একবার একবার নির্ধারিত হয়, আরম্ভের সময়, যখন দ্বিতীয় প্রকরণটি যতবার ডাকা হয় ততবার এই অস্থায়ী পরিবর্তনশীল তৈরি করে।
কেন এটি ব্যবহার করা হয় সে সম্পর্কে আমার সর্বোত্তম অনুমান এটি বারের জন্য উদাহরণগুলির সীমাবদ্ধ করে (কেবলমাত্র একটি থাকবে) এবং এইভাবে মেমরি পরিচালনার ওভারহেড সংরক্ষণ করে।
আমার প্রশ্নগুলো:
- এই ধারণাটি কি সঠিক?
- এই প্যাটার্নটির কোনও নাম আছে?
- কেন এটি ব্যবহার করা হয়?