দুটি প্রধান অংশ রয়েছে যা var FOO = FOO || {};কভার করে।
# 1 ওভাররাইডগুলি রোধ করা হচ্ছে
আপনার কোডটি একাধিক ফাইলে বিভক্ত হয়ে গেছে এবং আপনার সহকর্মীরাও ডাকা একটি অবজেক্টে কাজ করছেন তা কল্পনা করুন FOO। তারপরে এটি কেসটি নিয়ে যেতে পারে যে কেউ এরই FOOমধ্যে এটির কার্যকারিতা সংজ্ঞায়িত এবং নির্ধারিত করেছে (কোনও skateboardফাংশনের মতো )। তারপরে আপনি এটিকে ওভাররাইড করতে পারেন, যদি আপনি এটি ইতিমধ্যে বিদ্যমান কিনা তা পরীক্ষা না করে থাকেন।
সমস্যাযুক্ত কেস:
var FOO = {};
FOO.skateboard = function() {
alert('I like skateboarding!');
};
var FOO = {};
FOO.donut = function() {
alert('I like donuts!');
};
এই ক্ষেত্রে skateboardফাংশন আপনি জাভাস্ক্রিপ্ট ফাইল লোড সর্বস্বান্ত করা হবে homer.jsপরে bart.jsআপনার HTML কারণ হোমার একটি নতুন সংজ্ঞায়িত FOOবস্তু (এবং এইভাবে বার্ট থেকে বিদ্যমান এক ওভাররাইড করে) যাতে এটি শুধুমাত্র বিষয়ে জানেন donutফাংশন।
সুতরাং আপনার ব্যবহার করা দরকার var FOO = FOO || {};যার অর্থ "FOO এফইউকে দেওয়া হবে (এটি ইতিমধ্যে উপস্থিত থাকলে) বা একটি নতুন ফাঁকা বস্তু (যদি এফইও ইতিমধ্যে বিদ্যমান না থাকে)"।
সমাধান:
var FOO = FOO || {};
FOO.skateboard = function() {
alert('I like skateboarding!');
};
var FOO = FOO || {};
FOO.donut = function() {
alert('I like donuts!');
};
কারণ বার্ট এবং হোমার FOOতাদের পদ্ধতিগুলি সংজ্ঞায়নের আগে এখন অস্তিত্বের জন্য যাচাই করছেন , আপনি একে অপরের পদ্ধতিগুলিকে ওভাররাইড না করে লোড করতে bart.jsএবং homer.jsযে কোনও ক্রমে (যদি তাদের আলাদা নাম থাকে)। সুতরাং আপনি সর্বদা একটি FOOঅবজেক্ট পাবেন যার পদ্ধতি রয়েছে skateboardএবং donut(হ্যাঁ!)।
# 2 একটি নতুন অবজেক্টের সংজ্ঞা দেওয়া হচ্ছে
যদি আপনি প্রথম উদাহরণটি পড়ে থাকেন তবে আপনি ইতিমধ্যে এখন এর উদ্দেশ্য কী || {}।
কারণ যদি কোনও বিদ্যমান FOOঅবজেক্ট না থাকে তবে ওআর-কেস সক্রিয় হয়ে যায় এবং একটি নতুন অবজেক্ট তৈরি করে, যাতে আপনি এটিতে ফাংশন নির্ধারণ করতে পারেন। পছন্দ:
var FOO = {};
FOO.skateboard = function() {
alert('I like skateboarding!');
};