Показать сообщение отдельно
  #34 (permalink)  
Старый 23.08.2011, 21:40
Аватар для SlavaPav
Аспирант
Отправить личное сообщение для SlavaPav Посмотреть профиль Найти все сообщения от SlavaPav
 
Регистрация: 25.02.2010
Сообщений: 57

Мой вариант реализации самоопределяемой функции:
var displayName = (function() {
    function func() {
        alert('First name');
        func = function() {
            alert('Second name');
        };
    }
    
    return function() {
        func();
    };
})();

displayName();
displayName();

// Более удобный вариант
function memoize(init, main) {
    function current() {
        init.apply(null, arguments);
        current = main;
    }
    
    return function() {
        current.apply(null, arguments);
    };
}

var displayName = memoize(function() {alert('First name');}, function() { alert('Second name');});

displayName();
displayName();
Ответить с цитированием