setTimeout () для рекурсивной функции внутри самовызывающейся функции

Я хочу распространять свой код как самозаводящиеся анонимные функции, как я вижу, многие делают. Кроме того, в моем коде мне нужно отслеживать загрузку другой библиотеки, поэтому я могу использовать ее, когда она доступно.

(function(window, document, undefined) {
  staffHappens();
  var initMyLib = function() {
    if (typeof(myLib) == 'undefined') {
      setTimeout("initMyLib()", 50);
    } else {
      useMyLib();
    }
  }
  moreStaffHappens();
  initMyLib(); //-> initMyLib is undefined
})(this, document);

Как может возникнуть эта ошибка? Должен ли initMyLib находиться в пределах охватывающей (самовоспроизводящейся) функции?

5
задан user967722 11 January 2012 в 15:22
поделиться