以前因为一次重构,产生了一个线上 bug,对这次 bug 我一直没有忘记。后来有位同事和我说对象的 key 不能是变量,直到今天无意中发现对象的 key 其实是可以为变量的。
我来举个实际的场景吧。
比如有 3 个 VIP 会员,每一种会员有与之对应的一个会员 id,10 表示年会员,11 表示 3 个月会员,12 表示 6 个月会员。由于代码中多处使用到了会员 id,如果在代码使用数字做不同会员的业务处理,这样做有几个弊端:
1、数字不太直观,比如看到 10 你不会立马想到是年会员的 id,如果使用变量名 yearVipId 可直接知道是年会员 id;
2、一旦会员 id 修改后,很多业务逻辑多需要查看,确保万无一失。
假如我们定义了以下常量,代码中凡是涉及到会员 ID 的时候都使用变量名来表示:
// 年会员
const YEAR_VIP_ID = 10;
// 3 个月会员
const THREE_MONTH_VIP_ID = 11;
// 6 个月会员
const SIX_MONTH_VIP_ID = 12;
有一个业务需求需要根据不同的商品 ID,给用户提示不同的描述信息,为了避免写太