LINUX.ORG.RU

История изменений

Исправление X512, (текущая версия) :

Однако, в JS есть рефлексия, но не нужны классы.

В Javascript есть классы и this.

Ты точно не спутал с рефлексией?

Да, точно. Нужно просто определить является ли класс расширением указанного. В Обероне это активно используется для диспетчеризации и обработки сообщений.

	PROCEDURE (v: View) HandlePropMsg (VAR msg: Properties.Message);
		CONST min = 5 * Ports.mm; max = 50 * Ports.mm;
	BEGIN
		WITH msg: Properties.SizePref DO
			IF (msg.w = Views.undefined) OR (msg.h = Views.undefined) THEN
				 msg.w := 20 * Ports.mm; msg.h := 10 * Ports.mm
			ELSE
				Properties.ProportionalConstraint(2, 1, msg.fixedW, msg.fixedH,
										msg.w, msg.h);
				IF msg.h < min THEN msg.h := min; msg.w := 2 * min
				ELSIF msg.h > max THEN msg.h := max; msg.w := 2 * max
				END
			END
		| msg: Properties.ResizePref DO
			msg.horFitToWin := TRUE; msg.verFitToWin := TRUE
		| msg: Properties.FocusPref DO
			msg.setFocus := TRUE
		ELSE	(* ignore other messages *)
		END
	END HandlePropMsg;

Исходная версия X512, :

Однако, в JS есть рефлексия, но не нужны классы.

В Javascript есть классы и this.