!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, время: 03:57. |