|  | 
	| 
	| 
	
	| 
		
	| 
			
			 
			
				03.09.2010, 17:48
			
			
			
		 |  
	| 
		
			|  | Рассеянный профессор       |  | 
					Регистрация: 06.04.2009 
						Сообщений: 2,379
					 
		
 |  |  
	| with-love-from-siberia, в теме есть про замыкания, но да, тоже вариант. |  |  
	| 
		
	| 
			
			 
			
				03.09.2010, 18:06
			
			
			
		 |  
	| 
		
			
			| Кандидат Javascript-наук       |  | 
					Регистрация: 25.11.2009 
						Сообщений: 109
					 
		
 |  |  
	| 
	
 
	| Цитата: |  
	| function getA(){ return 1+1;
 };
 |  
	
 Данный вариант не подходит т.к. каждый раз при вызове ф-ции будет происходить вычисление выражения. В примере 1+1, в реале выражение может быть сколь угодно сложное и ресурсоемкое. Поэтому я искал вариант который позволит произвести вычисление один раз, далее же чтоб я просто мог использовать результат вычисления. |  |  
	| 
		
	| 
			
			 
			
				03.09.2010, 18:15
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 16.03.2010 
						Сообщений: 1,618
					 
		
 |  |  
	| 
	
 
	| Сообщение от jetli13 |  
	| в реале выражение может быть сколь угодно сложное и ресурсоемкое |  
	
 Это многое объясняет  |  |  
	| 
		
	| 
			
			 
			
				03.09.2010, 18:17
			
			
			
		 |  
	| 
		
			
			| Кандидат Javascript-наук       |  | 
					Регистрация: 25.11.2009 
						Сообщений: 109
					 
		
 |  |  
	| Sweet,Рад что мы поняли друг друга!
 |  |  
	| 
		
	| 
			
			 
			
				03.09.2010, 18:23
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 16.03.2010 
						Сообщений: 1,618
					 
		
 |  |  
	| А так не проще ли? 
var getA = (function(){
  var a = 1 + 1;
  return a;
})();
var b = getA;
Или так? 
var getA = 1 + 1;
var b = getA;
 |  |  
	| 
		
	| 
			
			 
			
				03.09.2010, 18:26
			
			
			
		 |  
	| 
		
			
			| Кандидат Javascript-наук       |  | 
					Регистрация: 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.
 |  |  
	| 
		
	| 
			
			 
			
				03.09.2010, 18:35
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 16.03.2010 
						Сообщений: 1,618
					 
		
 |  |  
	| getA будет по-любому торчать в глобальной области. Я просто не могу понять, почему так важно, чтобы она была функцией, возвращающей значение "а", а не самой "а"  |  |  
	| 
		
	| 
			
			 
			
				03.09.2010, 20:34
			
			
			
		 |  
	| 
		
			
			| Кандидат Javascript-наук       |  | 
					Регистрация: 25.11.2009 
						Сообщений: 109
					 
		
 |  |  
	| 
	
 
	| Цитата: |  
	| getA будет по-любому торчать в глобальной области. Я просто не могу понять, почему так важно, чтобы она была функцией, возвращающей значение "а", а не самой "а" |  
	
 потому что если это будет не функция, то для инициализации переменной мне придется произвести вычисление выражения. А в случае функции я возможно и не вызову ее ни разу. |  |  
	| 
		
	| 
			
			 
			
				03.09.2010, 20:42
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 16.03.2010 
						Сообщений: 1,618
					 
		
 |  |  
	| Все, вопросов больше не имею. Тогда вариант Riim'а действительно то, что надо. |  |  
	| 
		
	| 
			
			 
			
				03.09.2010, 20:57
			
			
			
		 |  
	| 
		
			
			| Кандидат Javascript-наук       |  | 
					Регистрация: 25.11.2009 
						Сообщений: 109
					 
		
 |  |  
	| Sweet,Гут! )
 |  |  |  |