parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Присвоение метода переменной и её потом выполнение

max_rip 07.10.2015 22:12

Хочется расширить свой класс доп методами, которые бы вызывались при их определение.
Что-то вроде в самом классе при инициализации
	^if(def $params.postUpdate && $params.postUpdate is junction){
		^self.postUpdate[$params.postUpdate]
	}
	^if(def $params.postInsert && $params.postInsert is junction){
		^self.postInsert[$params.postInsert]
	}
	^if(def $params.postDelete && $params.postDelete is junction){
		^self.postDelete[$params.postDelete]
	}
И потом по ходу работы
^if(def $self.postDelete){
	^self.postDelete[$id]]
}
и в самом коде
@auto[]
$estate[^estate::init[
	$.csql[$oSql]
	$.postUpdate[$postUpdate]
	$.postInsert[$postInsert]
	$.postDelete[$postDelete]
]]
@postUpdate[data]
	^dstop[$data]
@postInsert[data]
	^dstop[$data]
@postDelete[id]
	^dstop[$id]
Но такой код не работает как-то не сильно хочется, т.к. может потеряться контекст, где эти объявленные функции расположены.
Замена на $.postUpdate{$postUpdate}
в итоге приводит к junction used outside of context