История изменений
Исправление 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.