javascript instanceof 从字符串名称获取类型

标签 javascript instanceof

假设我有这个(假设名称变量是“receiver”):

if (!(receiver instanceof com.HTMLReceiver)) {
    throw new com.IllegalArgumentException(
        name + " is not an instance of com.HTMLReceiver.");
}

我想将这段代码分解成一个通用方法,这样我就可以这样调用它:

Helper.checkInstance(receiver, "com.HTMLReceiver");

但我不知道如何将 com.HTMLReceiver 从字符串转换为其实际类型,因此我可以在其上使用 instanceof

有办法吗?

最佳答案

我会这样调用它:

Helper.checkInstance(receiver, com.HTMLReceiver);

这将不允许您打印类型名称(“com.HTMLReceiver”)。

或:

Helper.checkInstance(receiver, com.HTMLReceiver, "com.HTMLReceiver");

您在打印中使用用户字符串。

注意同一个类型可以有多个类型名

var foo = com.HTMLReceiver;

foocom.HTMLReceiver 是同一事物的名称。

JavaScript 本身无法从一个类型转到另一个类型名称。

如果你只传入String,我认为唯一通用的解决方案是eval。

关于javascript instanceof 从字符串名称获取类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2901928/

相关文章:

java - 摆脱 `instanceof`

javascript - 我怎样才能使 var a = add(2)(3);//5 工作?

javascript - CSS 规则随 Javascript 改变 - 效果在 chrome 中可见,但在 ff 或 ie 中不可见

javascript - jQuery 智能感知 : Common reference file (stdafx) for vsdoc

javascript - 性能:typeof vs instanceof

java - instanceof 抛出不兼容的类型

javascript - 第一个函数作为异步函数的柯里函数不起作用

javascript - 谷歌认证死循环

java - 检查对象是否是 protected 类的实例

java - 强制转换会影响instanceof操作的结果吗?