-
Notifications
You must be signed in to change notification settings - Fork 4
/
didi_test.js
66 lines (52 loc) · 1.27 KB
/
didi_test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/**
*
* @param {Function} fn JavaScript 函数
* @param {Number} n 可以重试的次数
* @return {Function} 可以重复调用的function
*/
var reSet = function(fn, n) {
try {
} catch {
} finally {
}
}
const reS = reSet(fn, 3);
reS();
/***
* 要求:
* 1. 如果n-2次内成功, 只返回成功结果并且不执行n-2后面的次数(例子)
* 2. 如果n次内失败,则重复调用重试函数
* 3. 如果n次都没法成功, 则返回最后一次错误信息
*/
/**
* 如何优化以下代码,同时保证高复用性和扩展性
*/
class Parent {
login() {}
}
class ChildA extends Parent {
login() {
// 一段相同的逻辑
console.log('do something before');
// 一段 A 自己的逻辑
console.log('do something for A');
// 一段相同的逻辑
console.log('do something after');
}
}
// ChildB.prototype = new Parent()
class ChildB extends Parent {
login() {
// 一段相同的逻辑
console.log('do something before');
// 一段 B 自己的逻辑
console.log('do something for B');
// 一段相同的逻辑
console.log('do something after');
}
}
// 用法和效果,保持不变
const childA = new ChildA();
const childB = new ChildB();
childA.login();
childB.login();