2014-01-27 83 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    : { 

    }*/ 
};