!function() { return { a : function() { alert(true); }, b : function() { alert(false); } }[1 > 2 ? 'a' : 'b'](); }(); |
Суть "ленивой" функции не в замыкании, и не в реализации, а в уменьшении работы совершаемой JS. Эффективнее всего применять не для простых логических условий, а для массивного процесса инициализации. Чаще это перетекает в использование модуля.
|
меня удивило замещение переменной другим значением. у функции больше нет указателя, её должен был собрать сборщик мусора.
хотя, это и есть замыкание,как его описывают. просто таких примеров я никогда не видел. особенно, функция,которая сама себя переопределяет. и вообще, эта тема освещена не так хорошо,как чёртово использование jQuery, например. или работа с AJAX |
Цитата:
function factorial(n) { return n == 0 ? 1 : n * factorial (n-1); } alert(factorial(5)); Цитата:
|
не цепляйтесь к словам ) "на функцию больше ничего не указывает"
рекурсия не удивляет, а вот функция, которая меняет саму себя на ходу, это да. |
Часовой пояс GMT +3, время: 16:15. |