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

时间:2010-05-25 04:02:23

标签: 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

有办法吗?

1 个答案:

答案 0 :(得分:3)

我称之为:

Helper.checkInstance(receiver, com.HTMLReceiver);

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

或:

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

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

请注意,相同类型可以有多个类型名称

var foo = com.HTMLReceiver;

foocom.HTMLReceiver是同一个名称。

JavaScript无法从类型转换为类型名称。

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