【问题标题】:Javascript: Can a string be cast as/converted to a type constant?Javascript:可以将字符串转换为/转换为类型常量吗?
【发布时间】:2012-02-09 02:26:34
【问题描述】:

如果我有一个包含字符串的变量,有没有办法可以将该字符串的内容视为类型的名称?

例如,在 Javascript 中是否有 ???? 这样:

var ts = "Array";
var magic_type = ????; //magic
var obj_instance = new magic_type;

有效且obj_instance == [] ?

【问题讨论】:

    标签: javascript metaprogramming


    【解决方案1】:

    您可以通过对全局对象使用括号表示法来实例化它。

    var arr = new window['Array'];
    

    jsFiddle.

    如果构造函数接受参数,请将它们添加到末尾。

    作为旁注,您的代码示例...

    obj_instance === []
    

    ...永远不会计算为true,因为[] 语法将创建一个具有不同内存位置的新Array

    【讨论】:

    • 附上附录:你也可以链接这个想法:window['google']['visualization']['PieChart']
    【解决方案2】:
    var instance = new window[someString]();
    

    不需要魔法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-20
      • 2013-02-09
      • 2021-02-05
      • 1970-01-01
      • 2021-10-25
      • 1970-01-01
      相关资源
      最近更新 更多