【发布时间】:2019-03-10 10:08:09
【问题描述】:
我正在从 javascript 类切换到工厂函数。 除了参数,我还需要内部属性,例如。以下简化示例中的状态。那么,为什么 status 没有设置为 OK,应该如何设置呢?
const Model = (name) => {
name = "myname";
let status = "initial";
const setOK = () => {
status = "OK";
}
return {name, status, setOK}
};
const m = Model();
console.log(m.status); //status is initial
m.setOK();
console.log(m.status); //expecting OK, but still initial
【问题讨论】:
-
返回对象中的
status从let status获取初始值,但是改变let status的值并不会改变返回的对象 -
"... 不使用类并使用工厂函数。我只是在寻找完成此任务的“最佳”方法。“ 请参阅我的answer on对象组合
-
感谢CertainPerformance 和zer00ne,你们都帮了我很多忙,并为我指明了正确的方向。在大重构之前,我将不得不更深入地研究它并首先使用这些概念:-)
标签: javascript function factory