[Javascript] IE में नामित फ़ंक्शन एक्सप्रेशन, भाग 2


Answers

ठीक है, यह काम करेगा, जेस्क्रिप्ट (आईई) के साथ समस्या यह है कि फ़ंक्शन एक्सप्रेशन ( executeOnLoad ) की executeOnLoad इसके संलग्न गुंजाइश को रिसाव करेगा और वास्तव में दो फ़ंक्शन ऑब्जेक्ट्स का निर्माण करेगा ..

(function () {
  var myFunc = function foo () {};
  alert(typeof foo); // "undefined" on all browsers, "function" on IE

  if (typeof foo !== "undefined") { // avoid TypeError on other browsers
    alert( foo === myFunc ); // false!, IE actually creates two function objects
  }
})();
Question

मैंने कुछ समय पहले यह प्रश्न पूछा और स्वीकार किए गए उत्तर से खुश था। मुझे अभी एहसास हुआ है, हालांकि, निम्नलिखित तकनीक:

var testaroo = 0;
(function executeOnLoad() {
    if (testaroo++ < 5) {
        setTimeout(executeOnLoad, 25);
        return;
    }
    alert(testaroo); // alerts "6"
})();

परिणाम मुझे उम्मीद है यदि मेरा पहला प्रश्न सही से TJCrowder का जवाब सही है, तो क्या यह तकनीक काम नहीं करनी चाहिए?