In JavaScript ist es durchaus möglich Enums anzulegen:
var Protocol = { PAMSG_REGISTER:0x0000, // D version, S username, S password, S email, S captcha response APMSG_REGISTER_RESPONSE:0x0002, // B error, S updatehost, S Client data URL, B Character slots PAMSG_UNREGISTER:0x0003, // S username, S password }
Interessant wird es nun, wenn man versucht aus einer Zahl in diesem Beispiel der „2“ wieder einen Enum („APMSG_REGISTER_RESPONSE“) zu erzeugen. Hierbei hilft die Funktion „getEnumFromInteger“ welche wie folgt aussieht:
function getEnumFromInteger(enumWithValues, integer) { var keys = Object.keys(enumWithValues); for (var i=0; i<keys.length; i++) { if(enumWithValues[keys[i]]==integer) return keys[i]; } return null; }
Damit wird der Enum durchiteriert und der entsprechende Schlüssel, welcher dem Integer entspricht, zurückgegeben.