Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 03.09.2010, 17:48
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

with-love-from-siberia, в теме есть про замыкания, но да, тоже вариант.
Ответить с цитированием
  #12 (permalink)  
Старый 03.09.2010, 18:06
Кандидат Javascript-наук
Отправить личное сообщение для jetli13 Посмотреть профиль Найти все сообщения от jetli13
 
Регистрация: 25.11.2009
Сообщений: 109

Цитата:
function getA(){
return 1+1;
};
Данный вариант не подходит т.к. каждый раз при вызове ф-ции будет происходить вычисление выражения. В примере 1+1, в реале выражение может быть сколь угодно сложное и ресурсоемкое. Поэтому я искал вариант который позволит произвести вычисление один раз, далее же чтоб я просто мог использовать результат вычисления.
Ответить с цитированием
  #13 (permalink)  
Старый 03.09.2010, 18:15
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от jetli13
в реале выражение может быть сколь угодно сложное и ресурсоемкое
Это многое объясняет
Ответить с цитированием
  #14 (permalink)  
Старый 03.09.2010, 18:17
Кандидат Javascript-наук
Отправить личное сообщение для jetli13 Посмотреть профиль Найти все сообщения от jetli13
 
Регистрация: 25.11.2009
Сообщений: 109

Sweet,
Рад что мы поняли друг друга!
Ответить с цитированием
  #15 (permalink)  
Старый 03.09.2010, 18:23
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

А так не проще ли?
var getA = (function(){
  var a = 1 + 1;
  return a;
})();
var b = getA;
Или так?
var getA = 1 + 1;
var b = getA;
Ответить с цитированием
  #16 (permalink)  
Старый 03.09.2010, 18:26
Кандидат Javascript-наук
Отправить личное сообщение для jetli13 Посмотреть профиль Найти все сообщения от jetli13
 
Регистрация: 25.11.2009
Сообщений: 109

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

Последний раз редактировалось jetli13, 03.09.2010 в 18:28.
Ответить с цитированием
  #17 (permalink)  
Старый 03.09.2010, 18:35
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

getA будет по-любому торчать в глобальной области. Я просто не могу понять, почему так важно, чтобы она была функцией, возвращающей значение "а", а не самой "а"
Ответить с цитированием
  #18 (permalink)  
Старый 03.09.2010, 20:34
Кандидат Javascript-наук
Отправить личное сообщение для jetli13 Посмотреть профиль Найти все сообщения от jetli13
 
Регистрация: 25.11.2009
Сообщений: 109

Цитата:
getA будет по-любому торчать в глобальной области. Я просто не могу понять, почему так важно, чтобы она была функцией, возвращающей значение "а", а не самой "а"
потому что если это будет не функция, то для инициализации переменной мне придется произвести вычисление выражения. А в случае функции я возможно и не вызову ее ни разу.
Ответить с цитированием
  #19 (permalink)  
Старый 03.09.2010, 20:42
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Все, вопросов больше не имею. Тогда вариант Riim'а действительно то, что надо.
Ответить с цитированием
  #20 (permalink)  
Старый 03.09.2010, 20:57
Кандидат Javascript-наук
Отправить личное сообщение для jetli13 Посмотреть профиль Найти все сообщения от jetli13
 
Регистрация: 25.11.2009
Сообщений: 109

Sweet,
Гут! )
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
использование функции larpug Общие вопросы Javascript 2 30.03.2010 22:30
Почему замыкания не работают? alex0071 Общие вопросы Javascript 2 18.08.2009 10:16
Использование dll в javascript. alexKniaz Общие вопросы Javascript 5 28.10.2008 18:56
Ошибка вызова замыкания Андрей Параничев Общие вопросы Javascript 8 01.10.2008 21:16
Использование метода setTimeout News Общие вопросы Javascript 3 18.09.2008 20:37