Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   В чем фишка такого кода? (https://javascript.ru/forum/misc/13483-v-chem-fishka-takogo-koda.html)

trong 30.11.2010 13:49

В чем фишка такого кода?
 
Код google analytics:
<script type="text/javascript">
  var _gaq = _gaq || [];
  //...

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
</script>


Т.е. в коде создается функция и тут же вызывается. Зачем такие закидоны? Почему не написать просто:

<script type="text/javascript">
  var _gaq = _gaq || [];
  //...

    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
</script>

monolithed 30.11.2010 13:52

Про замыкания слышали?

Snipe 30.11.2010 13:55

все переменные останутся локальными и случайно не перезапишут переменные, которые были у пользователя, ставящего скрипт.
Например.

Конкретно тут речь идет о ga и s

trong 30.11.2010 13:57

Цитата:

Сообщение от monolithed
Про замыкания слышали?

Обязательно. Но вопрос был в другом.

trong 30.11.2010 13:58

Цитата:

Сообщение от Snipe
все переменные останутся локальными и случайно не перезапишут переменные, которые были у пользователя, ставящего скрипт.

Отлично, спасибо!

monolithed 30.11.2010 14:07

Цитата:

Сообщение от monolithed
Про замыкания слышали?

Цитата:

Сообщение от trong
Обязательно. Но вопрос был в другом.

Цитата:

Сообщение от Snipe
все переменные останутся локальными и случайно не перезапишут переменные, которые были у пользователя, ставящего скрипт.
Например.

Конкретно тут речь идет о ga и s

Цитата:

Сообщение от trong
Отлично, спасибо!

А говорите читали))

ksa 30.11.2010 15:50

Цитата:

Сообщение от monolithed
А говорите читали))

Ты спросил
Цитата:

Сообщение от monolithed
слышали?

Это не есть "читали"... ;)


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