не понятная конструкция в JS
я в различных JS скриптах видел эту конструкцию но не могу понять что она делает,
например такую вещь я могу понять myclass = new (function(){ ........ } тут создаётся новый объект с методами параметрами и т.д. но вот когда делают такое дело я не понимаю (function(){ ........ } вот мне интересно куда кидается этот объект, для чего именно так делают и зачем. |
var x= 1; new function( ){ var x= 2; }; alert( x ); |
tenshi,
твои ответы какие то не понятные, или ты по русски писать не умеешь? |
хай! ^_^
|
Возьмем функцию
function tram() { alert(1); } alert(tram); tram - ссылка на функцию без еёвыполнения, т.е. чтоб выполнить нужны () Т.е. ()() - выполняем "ссылку", что находится в первых скобках. (tram)(); Выполняем функцию и забываем про неё. Как-то так. |
scuter, это локализация области видимости, чтобы не гадить в глобальной.
(function() { // Следующие переменные и функции не будут видны в глобальной видимости var test = 0; var f = function() {}; })(); |
Цитата:
|
Единственно, что хотелось бы уточнить у более опытных коллег.
Если мы выполнили функцию и больше на неё никаких ссылок нет, то всё, что больше не используется должно очищаться сборщиком мусора. Т.е. в итоге мы имеем и используем только то, что нам действительно необходимо, причем в единственном экземпляре. Так? |
спасибо теперь понятно.
|
Больше вопросов сложных и интересных, JS - это не только кроссбраузерность и помощь новичкам (оба этих пункту уже надоели).
|
Часовой пояс GMT +3, время: 11:50. |