ক্লোজার সম্পর্কে আমি কিছু পোস্ট পড়ছিলাম এবং এগুলি সর্বত্র দেখেছি, তবে এটি কীভাবে কাজ করে সে সম্পর্কে কোনও স্পষ্ট ব্যাখ্যা নেই - প্রতিবার আমাকে কেবল এটি ব্যবহার করতে বলা হয়েছিল ...:
// Create a new anonymous function, to use as a wrapper
(function(){
// The variable that would, normally, be global
var msg = "Thanks for visiting!";
// Binding a new function to a global object
window.onunload = function(){
// Which uses the 'hidden' variable
alert( msg );
};
// Close off the anonymous function and execute it
})();
ঠিক আছে আমি দেখতে পাচ্ছি যে আমরা নতুন বেনামে ফাংশন তৈরি করব এবং তারপরে এটি সম্পাদন করব। সুতরাং এর পরে এই সাধারণ কোডটি কাজ করা উচিত (এবং এটি করে):
(function (msg){alert(msg)})('SO');
আমার প্রশ্ন এখানে কি ধরনের যাদু ঘটে? আমি ভেবেছিলাম যে আমি যখন লিখেছি:
(function (msg){alert(msg)})
তারপরে একটি নতুন নামবিহীন ক্রিয়াকলাপটি "" (msg) এর মতো তৈরি করা হবে ...
তবে কেন এই কাজ করে না?
(function (msg){alert(msg)});
('SO');
কেন এটি একই লাইনে থাকা দরকার?
আপনি কি আমাকে কিছু পোস্ট নির্দেশ করতে পারেন বা আমাকে একটি ব্যাখ্যা দিতে পারেন?
(function (msg){alert(msg)})('SO');
সম্পূর্ণ নিজস্বভাবে কাজ করে। আপনি পোস্ট করেছেন এমন অন্যান্য বেনামি কার্যটির সাথে এর কোনও যোগসূত্র নেই। এগুলি দুটি সম্পূর্ণ পৃথক বেনাম ফাংশন। আপনাকে তাত্ক্ষণিকভাবে একটি বেনামি ফাংশন শুরু করতে হবে কারণ এর কোনও নাম নেই এবং পরে উল্লেখ করা যায় না।