命名方法1:使用XXX + Enum 来命名
后端
OrderStatusEnum.CANCEL
前端
OrderStatusEnum.CANCEL
命名方法2:使用命名空间
后端
use common\Enums\OrderStatus;
OrderStatus.CANCEL
前端
import OrderStatus from “/enums/OrderStatus”;
OrderStatus.CANCEL
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<title>前端枚举类</title>
</head>
<body>
<script>
(function (global, undefined) {
//自定义全局枚举类
global.Enum = function (namesToValues) {
var enumeration = function () {
throw "can't Instantiate Enumerations";
};
enumeration.setValue = function (x) {
var val = null;
enumeration.foreach(function (i) {
if (i.value == x) {
val = enumeration[i.name];
}
}, null);
return val;
};
function inherit(superCtor) {
var f = function () {
};
f.prototype = superCtor;
var ctor = function () {
};
ctor.prototype = new f();
ctor.prototype.constructor = superCtor.constructor;
return new ctor;
}
var proto = enumeration.prototype = {
constructor: enumeration,
toString: function () {
return this.name;
},
valueOf: function () {
return this.value;
},
toJSON: function () {
return this.name;
}
};
enumeration.values = [];
for (name in namesToValues) {
var e = inherit(proto);
e.name = name;
e.value = namesToValues[name];
enumeration[name] = e;
enumeration.values.push(e);
}
enumeration.foreach = function (f, c) {
for (var i = 0; i < this.values.length; i++) {
f.call(c, this.values[i]);
}
};
return enumeration;
};
})(window);
</script>
<script>
var OrderStatus = window.Enum({
ERROR: 'ERROR',
CANCEL: 'CANCEL',
});
//alert(OrderStatus.ERROR.name);
//alert(OrderStatus.ERROR.value);
//value值对应后端枚举类的键
//或者直接使用对象键值对
var OrderStatus = {
ERROR: 'ERROR2',
CANCEL: 'CANCEL',
};
alert(OrderStatus.ERROR);
</script>
</body>
</html>
后端以PHP为例
<?php
namespace common\Enums;
class OrderStatus
{
const ERROR = 0;//异常订单
//此处省略其他状态...
const FINISHED = 90;//已成交
}