const reactInit = '@@react/Init'
const combineReducers  = (reducers) => {
    const finalReducers = {}
    for (let key in reducers) {
        const reducer = reducers[key]
        if (typeof reducer === 'undefined') {
            console.error(`reducer${key}的值是undefined`)
        }
        if (typeof reducer === 'function') {
            finalReducers[key] = reducer
        }
    }
    for (let key in  finalReducers) {
        const reducer = finalReducers[key]
        const state = reducer(undefined, reactInit)
        if (typeof state === 'undefined'){
            throw new Error(`reducer${key}的返回值为undefined`)
        }
    }
    return (state={}, action) => {
        for (let key in finalReducers) {
            const reducer = finalReducers[key]
            const newState = reducer(state[key], action)
            state[key] = newState
        }
        return state
    }
}