Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   не понятная конструкция в JS (https://javascript.ru/forum/misc/1279-ne-ponyatnaya-konstrukciya-v-js.html)

scuter 06.06.2008 17:42

не понятная конструкция в JS
 
я в различных JS скриптах видел эту конструкцию но не могу понять что она делает,
например такую вещь я могу понять
myclass = new (function(){
      ........
}

тут создаётся новый объект с методами параметрами и т.д.
но вот когда делают такое дело я не понимаю
(function(){
      ........
}

вот мне интересно куда кидается этот объект,
для чего именно так делают и зачем.

tenshi 06.06.2008 17:47

var x= 1;
new function( ){
    var x= 2;
};
alert( x );

scuter 06.06.2008 17:56

tenshi,
твои ответы какие то не понятные,
или ты по русски писать не умеешь?

tenshi 06.06.2008 19:31

хай! ^_^

Snipe 06.06.2008 21:28

Возьмем функцию
function tram() {
alert(1);
}
alert(tram);

tram - ссылка на функцию без еёвыполнения, т.е. чтоб выполнить нужны ()
Т.е. ()() - выполняем "ссылку", что находится в первых скобках.
(tram)();
Выполняем функцию и забываем про неё.

Как-то так.

Kolyaj 06.06.2008 22:03

scuter, это локализация области видимости, чтобы не гадить в глобальной.
(function() {
  // Следующие переменные и функции не будут видны в глобальной видимости
  var test = 0;
  var f = function() {};
})();

Kolyaj 06.06.2008 22:06

Цитата:

Сообщение от scuter
tenshi,
твои ответы какие то не понятные,
или ты по русски писать не умеешь?

С его ответами такой парадокс: те, кто и так в теме, понимают, что он хотел сказать, остальные - нет. Но тем, кто в теме, его ответы не нужны.

Snipe 06.06.2008 22:23

Единственно, что хотелось бы уточнить у более опытных коллег.
Если мы выполнили функцию и больше на неё никаких ссылок нет, то всё, что больше не используется должно очищаться сборщиком мусора.

Т.е. в итоге мы имеем и используем только то, что нам действительно необходимо, причем в единственном экземпляре.

Так?

scuter 07.06.2008 13:53

спасибо теперь понятно.

Snipe 07.06.2008 13:58

Больше вопросов сложных и интересных, JS - это не только кроссбраузерность и помощь новичкам (оба этих пункту уже надоели).


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