【发布时间】:2021-11-19 03:56:15
【问题描述】:
我正在尝试为创建的每个函数实例创建一个唯一的存储值,但由于某种原因,我创建的每个函数实例都使用相同的存储值。
我正在创建一个简单的 store 函数,然后在函数内部创建 store。但是,即使在函数的每个实例中都创建了存储,它们也被共享。为什么会这样。
这是一个代码框Sandbox
这里是代码
createStore.js
const createStore = (initialState) => {
const state = initialState;
const get = () => state;
const set = (key, value) => (state[key] = value);
return {
get,
set
};
};
export default createStore;
主要功能
import createStore from "./createStore";
import initialState from "./initialState";
const controller = () => {
const store = createStore(initialState);
const setStore = (key, val) => store.set(key, val);
const getStore = () => store.get().string;
return {
setStore,
getStore
};
};
export default controller;
然后我尝试通过创建多个控制器实例来使用它们,如下所示:
import controller from "./controller";
const ctl1 = controller();
const ctl2 = controller();
ctl1.setStore('string', 'Hello')
ctl2.setStore('string', 'Welcome')
clt1.getStore() // will output the last set store value of ctl2
【问题讨论】:
标签: javascript store