Open LittlebearHat opened 1 year ago
方案一:JS对象写法
let strategies = { add: function (num) { return num + num; }, multiply: function (num) { return num * num; }, }; let calculateBonus = function (strategy, num) { return strategies[strategy](num); }; console.log(calculateBonus("add", 3)); console.log(calculateBonus("multiply", 3));
方案二:传统写法
class Strategies {} class Add extends Strategies { start(num) { return num + num; } } class Multiply extends Strategies { start(num) { return num * num; } } class Context { constructor(strategy) { this.strategy = strategy; } start(num) { return this.strategy.start(num); } } let context = new Context(new Add()); console.log(context.start(3)); context = new Context(new Multiply()); console.log(context.start(3));
方案一:JS对象写法
方案二:传统写法