- 允许一个对象在其内部状态改变的时候改变它的行为。
- 其实就是创建一个对象或者Map,key值记录状态,value记录实现。当状态改变的时候,执行value
class State {
constructor() {
this.currentState = []
this.states = {
a() { console.log('执行a') },
b() { console.log('执行b') },
c() { console.log('执行c') }
}
}
change(arr) {
this.currentState = arr
return this
}
do() {
this.currentState.forEach(item => {
this.states[item]()
})
return this
}
}
new State()
.change(['a'])
.do()
如果记录状态时,key值只能是字符串有局限,可以使用Map