学习记录未知的事物,努力扩大自己的小圈子。(学而时习之,不亦说乎)
常用小技巧
写 JS 逻辑判断,不要只知道用 if-else 和 switch - 知乎
小结: 可以利用键值对(object / map)处理复杂的逻辑判断,便于后续维护。【多重判断时,Map 比 Object 更加适合处理】
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20// 不同身份、不同状态处理
function handle(identity, status) {
const actions = (function () {
return new Map([
[/^guest_[1-4]$/, () => {console.log('操作1')}],
[/^guest_.*$/, () => {console.log('操作2')}],
[/^master_[2-3]$/, () => {console.log('操作3')}],
[/^master_.*$/, () => {console.log('操作4')}],
]);
})();
let curRule = `${identity}_${status}`;
for(let [rule, action] of actions.entries()) {
// 优先匹配原则
if (rule.test(curRule)) {
action.call(this);
break;
}
}
}等待更多… ^ ^
对比思考
- 继承 vs 组合:哪一个更适合你的 JavaScript 项目 - 知乎
- 小结:
- 继承:子类借用父类除私有属性方法外的所有公共和受保护的属性和方法。(JavaScript 中,子对象常借用父对象的构造函数(自身新属性)和原型链上的方法)
- 小结: