function createStore(reducer) {
//设置一个空数组,存放订阅者返回的回调方法
var list = []
//先设置reducer初始值
var state = reducer(undefined, {})
//订阅者
function subscribe(callback) {
list.push(callback)
}
//发布者
function dispatch(action) {
state = reducer(state, action)
for (let i in list) {
//list数组中第i个是否存在,是-执行
list[i] && list[i]()
}
}
//获取state方法
function getState() {
return state
}
return {
subscribe,
dispatch,
getState,
}
}