gpt4 book ai didi

javascript - 通过名称作为字符串访问 "pseudo-globals"

转载 作者:行者123 更新时间:2023-11-30 18:54:08 28 4
gpt4 key购买 nike

我现在正在通过将所有内容包含在一个函数中,将全局变量变成“伪全局变量”,从而从我的代码中删除大部分全局变量,这些全局变量都可以从该函数 block 内的任何地方访问。

(function(){

var g = 1;

var func f1 = function () { alert (g); }

var func f2= function () { f1(); }

})();

(从技术上讲,这仅适用于我的“发布版本”,我将所有文件附加到一个文件中,并用上面的内容包围它们……我的开发版本通常每个 js 文件都有一个全局文件)

这一切都很好,除了一件事......有一个重要的地方,我需要通过字符串名称访问其中一些“全局变量”。以前,我可以这样做:

 var name = "g";
alert (window[name]);

和它做的一样

 alert(g);

现在——从 block 内部——我想在我的伪全局变量上做同样的事情。但我不能,因为它们不再是任何父对象(“窗口”)的成员,即使在范围内也是如此。

有什么方法可以通过字符串访问它们?

谢谢...

最佳答案

基本上没有,正如这个问题间接回答的那样:Javascript equivalent of Python's locals()?

您唯一真正的选择是使用 eval ,这通常不是一个好主意,甚至不是一个安全的主意,如以下问题所述:Why is using the JavaScript eval function a bad idea?

如果这些变量的字符串名称确实以安全的方式定义(例如,不是通过用户输入或任何方式),那么我建议只使用 eval。一定要认真认真地思考这个问题,看看是否有更好的方法来做到这一点。

关于javascript - 通过名称作为字符串访问 "pseudo-globals",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2768524/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com