深入理解javascript

64 阅读1分钟
const createStore=(reducer)=>{
    let state={}
    let listeners=[]

    const getState=()=>state
    const subscribe=(listener)=>{
        listeners.push(listener)
        return ()=>listeners=listeners.filter(l=>l!==listener)
    }
    const dispatch=(action)=>{
        state=reducer(state,action)
        listeners.forEach(l=>l())
    }


    return {
        getState,
        subscribe,
        dispatch
    }
}