Показать сообщение отдельно
  #14 (permalink)  
Старый 01.11.2009, 18:38
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Начитался блин всяких style guide'ов и черновиков ECMAScript 5 надо же всегда помнить про IE!

По новому стандарту ссылка arguments.callee не будет работать в "strict mode"; Решил попонтоваться и избавится он нее заранее следующим образом:
(function callee() {

    …

    if (…) {
        setTimeout(callee, …);
    }

}());
Но у нас же есть JScript, в котором такая функция будет видна и в текущем контексте исполнения:
(function callee() {});
alert(callee);


Сообщение от MDC JavaScript style quide
• Name inline functions, this makes it easier to debug them. Just assigning a function to a property doesn't name the function, you should to do this:
var offlineObserver = {
  observe: function OO_observe(aSubject, aTopic, aState) {
    if (aTopic == "network:offline-status-changed")
      setOfflineUI(aState == "offline");
  }
};
Ага, удобно значит дебажить, свойство name функции будет не пустой строкой, но в JScript этот OO_observe вывалится в глобальное пространство.

Вот и улучшили код)
Ответить с цитированием