Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   использование замыкания (https://javascript.ru/forum/misc/11614-ispolzovanie-zamykaniya.html)

Riim 03.09.2010 17:48

with-love-from-siberia, в теме есть про замыкания, но да, тоже вариант.

jetli13 03.09.2010 18:06

Цитата:

function getA(){
return 1+1;
};
Данный вариант не подходит т.к. каждый раз при вызове ф-ции будет происходить вычисление выражения. В примере 1+1, в реале выражение может быть сколь угодно сложное и ресурсоемкое. Поэтому я искал вариант который позволит произвести вычисление один раз, далее же чтоб я просто мог использовать результат вычисления.

Sweet 03.09.2010 18:15

Цитата:

Сообщение от jetli13
в реале выражение может быть сколь угодно сложное и ресурсоемкое

Это многое объясняет:)

jetli13 03.09.2010 18:17

Sweet,
Рад что мы поняли друг друга!

Sweet 03.09.2010 18:23

А так не проще ли?
var getA = (function(){
  var a = 1 + 1;
  return a;
})();
var b = getA;
Или так?
var getA = 1 + 1;
var b = getA;

jetli13 03.09.2010 18:26

Цитата:

А так не проще ли?
показать чистый исходник в новом окнеСкрыть/показать номера строкпечать кода с сохранением подсветки
var getA = (function(){
var a = 1 + 1;
return a;
})();
var b = getA;
Или так?
var getA = 1 + 1;
var b = getA;
Проще, но - в этих случаях getA будет торчать в глобальной области памяти.
А это и было одним из условий вопроса

Sweet 03.09.2010 18:35

getA будет по-любому торчать в глобальной области. Я просто не могу понять, почему так важно, чтобы она была функцией, возвращающей значение "а", а не самой "а":)

jetli13 03.09.2010 20:34

Цитата:

getA будет по-любому торчать в глобальной области. Я просто не могу понять, почему так важно, чтобы она была функцией, возвращающей значение "а", а не самой "а"
потому что если это будет не функция, то для инициализации переменной мне придется произвести вычисление выражения. А в случае функции я возможно и не вызову ее ни разу.

Sweet 03.09.2010 20:42

Все, вопросов больше не имею. Тогда вариант Riim'а действительно то, что надо.

jetli13 03.09.2010 20:57

Sweet,
Гут! )


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