Javascript 在运行时将对象动态注入变量
是否可以在运行时将类动态添加到已分配的变量中。下面是一个例子来说明:Javascript 在运行时将对象动态注入变量,javascript,typescript,Javascript,Typescript,是否可以在运行时将类动态添加到已分配的变量中。下面是一个例子来说明: export class Bar { } export class Foo { } export class Qux { } export let Class = { FooClass : Foo, BarClass : Bar }; export class ParentClass { public addToClass(className : string, classType : any) {
export class Bar { }
export class Foo { }
export class Qux { }
export let Class = {
FooClass : Foo,
BarClass : Bar
};
export class ParentClass {
public addToClass(className : string, classType : any) {
Class.add(className, classType); // this obviously doesn't work but somethhing like this
}
public getClasses() {
return Class;
}
}
在运行时,我想调用
ParentClass pc = new ParentClass();
ps.addToClass('QuxClass', Qux);
ps.getClasses(); // Should return {FooClass, BarClass, QuxClass}
我知道这可以通过Map/Dictionary实现,但我需要让它为这个对象持有者工作,否则它将需要一个完整的重构。感谢@kharel提供的解决方案 参考:
replace Class.add(className,classType)为Class[className]=classType
如果您认为一个类实际上是JavaScript中的一个对象,那么在JavaScript中向其他对象添加对象是很正常的。你所采取的方法是不寻常的,但可以让它发挥作用。用Class.add(className,classType)
替换为Class[className]=classType
哦,天哪,就是这么简单!!。。。谢谢很多,哈雷尔!行得通