我有像这样的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中使用类只知道它的名字吗?
答案 0 :(得分:1)
从&#34;班级&#34;在Javascript中只是常规变量/函数,你真正要求的是&#34;变量&#34; ,这是使用对象映射最容易实现的:
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'](...);
答案 1 :(得分:0)
我的Chrome 51.0.2704.103中有eval
个关键字。无需制作全局类图。
var className = "X";
var klass = eval(className);
var x2 = new klass;
x2.work(1, "Hello", false);