Javascript 中類比 Enum By shawl.qiu
說明:
這個類比起來挻簡單的, 不過由於 JS 程式一般都很小, 基本上不需要使用像Enum 這樣的資料類型...
相關文章見: shawl.qiu Javascript 雜湊表類 / HashTable v1.0
http://blog.csdn.net/btbtd/archive/2007/06/28/1669636.aspx
shawl.qiu
2007-08-22
http://blog.csdn.net/btbtd
內容:// shawl.qiu JavaScript Document
/*-----------------------------------------------------------------------------------*/
* shawl.qiu Enum class v1.0
/*-----------------------------------------------------------------------------------*/
//---------------------------------begin class Enum()-------------------------------//
function Enum()
{ // shawl.qiu code : return object
//------------------------------------begin private variable
var Arg = arguments;
//------------------------------------begin private method
function fGetEnum()
{
var This = this;
var ArgLen = Arg.length;
var Index = 0;
if(ArgLen>0)
{
for(var i=0; i<ArgLen; i++)
{
Arg[i] += "";
Arg[i] = Arg[i].replace(//s+/g, "");
if(Arg[i].indexOf("=")>-1)
{
var TempAr = Arg[i].split("=");
if(TempAr.length!=2)
{
throw new Error(["枚舉類型: ", Arg[i], " 初始化出錯!"].join(''));
}
var iTemp = parseInt(TempAr[1]);
if(isNaN(iTemp))
{
throw new Error(["枚舉類型: ", Arg[i], " 初始值出錯!"].join(''));
}
This[TempAr[0]] = iTemp;
Index = ++iTemp;
}
else
{
This[Arg[i]] = Index++;
}
}
}
else
{
fFatalError("枚舉類型必須有初始參數!");
}
return This;
}
function fFatalError(sMsg)
{// shawl.qiu code : void return
if(!sMsg) sMsg = "發生嚴重錯誤, 現在終止程式運行!";
throw new Error(sMsg);
} // end function fFatalError
//------------------------------------end private method
//------------------------------------begin initer
return new fGetEnum();
//------------------------------------end initer
} // shawl.qiu code
//---------------------------------end class Enum()---------------------------------//