2014-01-27 138 views
1

是否允許JavaScript使用枚舉來定義另一個枚舉?使用枚舉來定義另一個枚舉

var VESSEL_DOCUMENT_SUB_TYPE = { 
// PLAN_TYPE   : { 
//  
// }, 
    /** @enum {Number} */ 
    CERTIFICATE_TYPE : { 
     BUNKER_OIL_POLLUTION_DAMAGE : CERTIFICATE_TYPE.BUNKER_OIL_POLLUTION_DAMAGE, 
     P_I_COE      : CERTIFICATE_TYPE.P_I_COE, 
     H_M_SINGLE_COVER_NOTE  : CERTIFICATE_TYPE.H_M_SINGLE_COVER_NOTE 
    }/*, 
    OTHER    : { 

    }*/ 
}; 

var CERTIFICATE_TYPE = { 
    /** Bunker Oil Pollution Damage */ 
    BUNKER_OIL_POLLUTION_DAMAGE : 0, 
    /** P&I (COE) */ 
    P_I_COE      : 1, 
    /** H&M Single Cover Note */ 
    H_M_SINGLE_COVER_NOTE  : 2 
}; 

回答

2

是的,它是允許的。唯一的問題是,我得到一個運行時錯誤,因爲CERTIFICATE_TYPE應該在之前定義VESSEL_DOCUMENT_SUB_TYPE

var CERTIFICATE_TYPE = { 
    /** Bunker Oil Pollution Damage */ 
    BUNKER_OIL_POLLUTION_DAMAGE : 0, 
    /** P&I (COE) */ 
    P_I_COE      : 1, 
    /** H&M Single Cover Note */ 
    H_M_SINGLE_COVER_NOTE  : 2 
}; 

var VESSEL_DOCUMENT_SUB_TYPE = { 
// PLAN_TYPE   : { 
//  
// }, 
    /** @enum {Number} */ 
    CERTIFICATE_TYPE : { 
     BUNKER_OIL_POLLUTION_DAMAGE : CERTIFICATE_TYPE.BUNKER_OIL_POLLUTION_DAMAGE, 
     P_I_COE      : CERTIFICATE_TYPE.P_I_COE, 
     H_M_SINGLE_COVER_NOTE  : CERTIFICATE_TYPE.H_M_SINGLE_COVER_NOTE 
    }/*, 
    OTHER    : { 

    }*/ 
};