开发者

javascript instanceof get type from string name

Let's say I have this (assume the name variable is "receiver"):

if (!(receiver instance开发者_C百科of com.HTMLReceiver)) {
    throw new com.IllegalArgumentException(
        name + " is not an instance of com.HTMLReceiver.");
}

I'd like to factor this code out into a common method so I could call it like this:

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

But I don't know of a way to convert the com.HTMLReceiver from a string to its actual type so I can use instanceof on it.

Is there a way?


I would call it as:

Helper.checkInstance(receiver, com.HTMLReceiver);

This will not allow you print a type name ("com.HTMLReceiver").

or:

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

You use the user string in the print.

Note that the same type can have multiple type names

var foo = com.HTMLReceiver;

foo and com.HTMLReceiver are names for the same thing.

JavaScript has no way of going from type to type name itself.

If you only pass in the String, I think the only general solution is eval.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜