通过字符串名称访问对象的 eval 替代方案?

发布于 2024-11-06 08:30:22 字数 201 浏览 0 评论 0原文

我有以下内容

eval(id+' = new MyObject()');

,我想访问生成的对象及其方法。我可以这样做

myObject = eval(id);
myObject.myMethod();

,但是除了使用 eval 有什么优雅的替代方案吗?

I have the following

eval(id+' = new MyObject()');

and I want to access the resulting object and its methods. I could do so with

myObject = eval(id);
myObject.myMethod();

but what elegant alternatives are there to using eval?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

瀞厅☆埖开 2024-11-13 08:30:22

假设 id 旨在成为全局对象,并且您正在浏览器中执行,

window[id] = new MyObject();
myObject = window[id];
myObject.myMethod();

或者您可以修改代码以将该 id 存储到对象中。

var objectStore = {};

objectStore[id] = new MyObject();
myObject = objectStore[id];
myObject.myMethod();

Assume that id is intended to be a global object and you're executing in a browser,

window[id] = new MyObject();
myObject = window[id];
myObject.myMethod();

Or you could just modify the code to store that id into an Object.

var objectStore = {};

objectStore[id] = new MyObject();
myObject = objectStore[id];
myObject.myMethod();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文