我想知道是否可以为枚举重新定义 toString() 。
这是我的枚举:
enum Person{
FOO = 10,
FAA = 1,
FII = 2
}
Run Code Online (Sandbox Code Playgroud)
我想重新定义 toString 以便在调用 Person.FOO.toString() 时返回“FOO”。那可能吗?
如果您查看已编译的 javascript 代码:
var Person;
(function (Person) {
Person[Person["FOO"] = 10] = "FOO";
Person[Person["FAA"] = 1] = "FAA";
Person[Person["FII"] = 2] = "FII";
})(Person || (Person = {}));
Run Code Online (Sandbox Code Playgroud)
您会注意到这Person.FOO只是一个数字(10具体而言),因此覆盖toStringfor 它的唯一方法要求您为所有数字覆盖它,而您可能不希望那样。
如果您正在寻找枚举的名称(而不是序数),那么您可以简单地执行以下操作:
console.log(Person[Person.FOO]); // "FOO"
Run Code Online (Sandbox Code Playgroud)