Показать сообщение отдельно
Старый 28.02.2014, 11:33
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 1  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
По умолчанию Локальные переменные и инстансы функций

Стал тут выдирать из кодов всякие вкусные фрагменты и формировать из них некую либу.
По мере формирования оной пришел к выводу, что все-таки мне нужны классы и ООП.
По сути - думал, что надо new my_class() и в каждой инстанции будут храниться свои переменные данные и т.п.

Но попробовал все-таки сделать через функции. Упрощенно это выглядит так:

Код AS1/AS2:
function initACCU( VAL ){
 
	var ACCUTotal = VAL
 
	function getACCU(){ return ACCUTotal }	
 
	return { getAccu:Function = getACCU }
}
 
var AC1:Object = initACCU( 100 )
var AC2:Object = initACCU( 200 )
 
trace( AC1.getAccu() )		// 100
trace( AC2.getAccu() )		// 200
То есть все работает так, как и планировалось. Два вызова одной и той же функции имеют свои разные локальные переменные. Классы не понадобились. Я в замешательстве. В двух словах мне может кто-то объяснить - как и почему оно работает? Отработавшая функция создает какой-то инстанс?
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2