#javascript
Часто видел когда код JavaScript оборачивается в такую конструкцию: (function(){ // ... код ... })(); Для чего это нужно? Пример одной из таких библиотек можно посмотреть здесь.
Ответы
Ответ 1
Это называется "замыкание" и используется для создания собственных пространств имен. Подробнее можно почитать на javascript Гарден. Зачастую это свойство применяют для пробега по массиву: var a = document.getElementsByTagName('a'); for(var i = 0; i < a.length; ++i){ a[i].onclick = function(){alert(i);return false;} } В этом случае каждая ссылка будет выдавать окошко с количеством ссылок (i = a.length). var a = document.getElementsByTagName('a'); for(var i = 0; i < a.length; ++i){ (function(n){a[i].onclick = function(){alert(n);return false;}})(i); } А в этом случае создается замыкание, и значение n не берется извне. То есть, ссылки будут выдавать при клике свой порядковый номер.Ответ 2
Вызывает функцию сразу после объявления. т.н. "немедленный вызов объявленной функции", если взять кальку с английского. Эквивалентно: function abc(){ //something; } abc(); ну, а нужно чтобы можно было этим куском пользоваться независимо, в т.ч. управление областью видимости, чтобы при вставке в чужой код как можно меньше всего пострадало.
Комментариев нет:
Отправить комментарий