在 JavaScript 中,如何从类的字符串名称中检索类? [复制]

2024-01-09

我有这样的 xml 文件

<X/>

我希望能够从中构造 JavaScript 对象。我必须从标签中检索 JavaScript 对象。可能使用 Reflection API。为简单起见,标签名称等于类名称。

如何从类的字符串名称中检索类?

<html>
    <head>
        <script type="text/javascript">
                class X {
                    work(number, text, check) {
                        console.log("X.work: " + number + ", " + text + ", " + check);
                    }
                }
                // 1)
                var x1 = new X();
                x1.work(1, "Hello", false);
                // 2)
                var className = "X";
                var klass = window[className];
                var x2 = new klass();
                x2.work(1, "Hello", false); // klass == undefined
        </script>
    </head>
</html>

我有以下 Chrome 51.0.2704.103 的输入

 X.work: 1, Hello, false
 Uncaught TypeError: Cannot read property 'work' of undefined

我可以在 JavaScript 中使用类,只需知道它的名称吗?


由于 Javascript 中的“类”只不过是常规变量/函数,所以您真正要求的是“变量变量”,使用对象映射最容易实现:

var nodes = {
    X: class X { ... },
    Y: class Y { ... }
};

// or:

class X { ... }

var nodes = { X: X };
// or the convenience shorthand in ES6:
var nodes = { X };

// then:

new nodes['X'](...);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 JavaScript 中,如何从类的字符串名称中检索类? [复制] 的相关文章

随机推荐

  • 将 QByteArray 附加到 QDataStream?

    我必须填充一个QByteArray具有不同的数据 所以我正在使用QDataStream QByteArray buffer QDataStream stream buffer QIODevice WriteOnly qint8 dataHe
  • 非聚集索引在 SQL Server 中的工作原理

    我有一个与数据库理论相关的问题 假设我们有一个包含 3 列的表 PersonID PersonName PersonAge 我们知道 当我们有一个一列的非聚集索引时 SQL Server会按照指定的列对表数据进行排序 并从中构建B 树 当我
  • 在 Python 中使用 readlines 是坏代码吗?

    我因使用 file readlines 的答案而被否决 批评者说使用 readlines 是垃圾代码 以及其他非常粗鲁的语句 有那么糟糕吗 我认为问题在于readlines 将整个文件加载到内存中 理论上 内存可能很大 就内存使用而言 惰性
  • 如何在谷歌浏览器扩展中创建套接字?

    我为谷歌浏览器创建了一个小 hello world 扩展http code google com chrome extensions getstarted html http code google com chrome extension
  • Twitter 的 OAuth 系统如何工作?

    我有一个演示脚本 可以让我使用我的应用程序进行授权并发回我的令牌 但这很令人困惑 我一直在 CURL 或 simpleXML 函数中使用用户名和密码来授权 API 调用 我不明白这与 oauth 有什么关系 我知道我将存储令牌 但是一旦我拥
  • Windows 上的 .NET Core 3.0 忽略 NO_PROXY

    我们正在尝试让代理功能在 Windows 上的 NET Core 3 0 或 3 1 应用程序中工作 我们发现 HTTPS PROXY 和 HTTP PROXY 变 量按预期进行识别和处理 但默认代理似乎不支持 NO PROXY 变 量 这
  • Git 通过 ngrok 隧道转发

    我的本地实例上有一个 git 存储库 我想从家庭网络外部访问它 我应该为此在本地实例上创建 git 服务器和 ssh 服务器吗 另外我应该使用 ngrok 建立隧道的端口是什么 任何意见都将不胜感激 如图所示第193期 https gith
  • Perl 中的反向 DNS 查找

    如何执行反向 DNS 查找 即如何在 Perl 中将 IP 地址解析为其 DNS 主机名 如果您需要更详细的 DNS 信息 请使用Net DNS http search cpan org olaf Net DNS 0 63 lib Net
  • 将 HBITMAP 绘制到分层窗口上。怎么了?

    大家好 美好的一天 我的最终目标是在屏幕上绘制一个包含 Alpha 的 PNG 文件 这意味着不是在自己的窗口中 而是在桌面上的某个位置 将 PNG 加载到 HBITMAP 的部分现在可以工作 以不同的方式进行测试 但我无法做到绘制它 包括
  • Java程序查找字符串数组中元音的长度和数量

    我需要从用户那里获取一个字符串并将其输出到一个表中 包括其单词数和元音数 但我不知道如何计算元音 我尝试了以下方法 import java util Scanner public class Array2 public static voi
  • Objective C - iCal 不在 iOS 9 中创建自定义日历和新事件

    这在 iOS 8 中完美运行 但在 iOS 9 中创建问题 这里是代码 self eventManager eventStore requestAccessToEntityType EKEntityTypeEvent completion
  • Xcode Core Data:将现有 XML 更改为 Sqlite(NSXMLStoreType 更改为 NSSQLiteStoreType)

    在我的第一个应用程序中 我在持久存储协调器中使用了 NSXM StoreType storeCooordinator addPersistentStoreWithType NSXMLStoreType configuration nil U
  • 从音频流中提取 SMPTE 时间码

    我正在开发一个录音系统 我的任务涉及从同步器设备生成的音频输入流中提取 SMPTE 时间码 我使用 ASIO SDK 来获取每个回调缓冲区的时间代码 但它始终为零 也许有人有 ASIO SDK 或任何其他可用于从音频流中提取 SMPTE 时
  • 在后台检查互联网连接

    我需要在后台检查互联网连接 我正在数据库中保存一些数据 每当我连接到互联网时 它应该将数据上传到我的服务器上 我需要一个后台服务 即使我关闭我的应用程序 它也会持续检查互联网连接 我尝试了几种方法 但它们只有在我打开我的应用程序时才有效 目
  • Spring Batch - Web 服务到 Web 服务分块

    我有一个托管的网络服务 允许批量提取记录 此 Web 服务以起始记录号 ROWID 和页面大小 最大 800 作为参数 可以从此服务中提取 50 60k 条记录 并调用另一个 Web 服务以块的形式再次发布所有这些数据 而无需在其间保留数据
  • 使用jQuery获取垂直滚动的最大值

    这是我的视图代码 我使用 jQuery 它可以工作 并且在我更改屏幕分辨率之前我没有任何问题 它停止工作 我知道问题出在哪里 但我无法解决它 看看代码 model PNUBOOKIR Models ProductModels Layout
  • B树和B+树有什么区别?

    In a b tree你可以存储两者内部节点和叶节点中的键和数据 但是在一个b tree你必须将数据存储在仅叶节点 在 b 树中执行上述操作有什么好处吗 为什么不到处使用 b 树而不是 b 树 因为直观上它们看起来更快 我的意思是 为什么需
  • SwiftUI 中元素之间的间距?

    我想知道为什么 SwiftUI 中的两个元素之间会出现这种间距 以及如何控制 修改它 我尝试向 ExtractedView 添加一些填充 但它没有改变任何内容 似乎是由某种原因引起的 frame 高度 56 但这正是按钮的高度 因此它不应该
  • 使用CSS将div对齐到另一个div的底部

    我想对齐DIV c在底部DIV b not DIV a div div div Div c div div div 这应该有效 b position relative c position absolute bottom 0px 诀窍是po
  • 在 JavaScript 中,如何从类的字符串名称中检索类? [复制]

    这个问题在这里已经有答案了 我有这样的 xml 文件