在另一个文件中设置超出范围的变量

问题描述 投票:0回答:1

在有人投反对票或有人告诉我这是“不好的做法”之前。我知道我在做什么并且我意识到这一点。我只是在寻找解决方案。

我正在 NodeJS 中做一个模型视图控制器,我想简化每个模型内的“声明”模型。

这是一个示例模型:

let {UserManager} = {...null}; // Obviously, UserManager is null.

class SystemMGR {}; 

module.exports = {
    SystemMGR: SystemMGR,
}

现在,假设我加载了所有模型(UserManager、OrderManager、WhateverManager)
我希望能够更新每个模型,而不直接更改我的模型代码。
例如,从路由器创建一个动态函数,该函数将访问某种类型的“this”,然后访问模型范围上的变量,例如“UserManager”。
我不是在寻找高级示例,只需将变量 UserManager 更新为“hello world”就足够了,我无法找出任何合适的解决方案。

我尝试使用Object.prototype.hasOwnProperty、Object.defineProperty、Proxies、hasOwnPropery.call等方法,但没有一个起作用。 TLDR:更新 SystemMGR.UserManager,无需使用硬编码在文件内的函数编辑示例模型。

请避免任何反对票,如果我的要求不够明确,请告诉我。

javascript node.js oop model-view-controller scope
1个回答
0
投票

这是不可能的。

UserManager
是局部变量,无法从外部访问。试图强迫你的方式绝对是一个坏主意:-)

不要将其设为变量,而将其设为某个对象的属性(并按此方式访问它)。然后您可以导出(或以其他方式共享)该对象并根据需要对其进行修改。这可能仍然是一个坏主意,但你知道你在做什么。

© www.soinside.com 2019 - 2024. All rights reserved.