我有以下代码:
我想创建一个对象工厂,使用ES6语法,但是旧的语法在新版本中无法使用。
我有以下代码:
export class Column {}
export class Sequence {}
export class Checkbox {}
export class ColumnFactory {
constructor() {
this.specColumn = {
__default: 'Column',
__sequence: 'Sequence',
__checkbox: 'Checkbox'
};
}
create(name) {
let className = this.specColumn[name] ? this.specColumn[name] : this.specColumn['__default'];
return new window[className](name); // this line throw error
}
}
let factory = new ColumnFactory();
let column = factory.create('userName');
我做错了什么?
window[className]
从来没有可靠地工作过。 - Bergi