Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   конструкция (function(){...})() в учебнике не нашел описания (https://javascript.ru/forum/misc/23352-konstrukciya-function-%7B-%7D-v-uchebnike-ne-nashel-opisaniya.html)

zablik 21.11.2011 11:26

конструкция (function(){...})() в учебнике не нашел описания
 
Разбираясь в чужом коде наткнулся на фрагмент

...
(function(a){
addEvent(tdHead1, 'click', function(){
sortByColumn(self, tdHead.sortOrder, columnNames[a]);																	tdHead.sortOrder = tdHead.sortOrder * (-1);
																				return false;});})(i);

DjDiablo 21.11.2011 11:27

(function(){...})()
означает что ты создаёшь функцию, и сразу же её вызываешь.

Два ниже приведённых примера по сути едентичны. За тем исключение что в первом случае у вызываемой функции даже имени своего нет.

//пример 1
(function ( a ) { alert( a ) }) ( "hello" )

//пример 2
test = function ( a ) { alert ( a ) };
test ( "hello" );


В твоём примере автор кода, избавился от ненужного замыкания, при помощи вызова безымянной функции. Если бы он этого не сделал, то все click срабатывали бы с одним и тем же i. Подробнее здесь

Aetae 21.11.2011 12:05

10ая тема по данному вопросу, юзай поиск или, что лучше, читай основные статьи на этом сайте.


Часовой пояс GMT +3, время: 10:21.