0

Is it possible in the js ES6 create class with different name? like:

    'use strict'
    class SomeClass {
        someMethod(){
        }
    }
    ...
    var sClassName = "SomeClass";
    var variableClass = new Class(sClassName)();
    variableClass.someMethod();
Cœur
  • 37,241
  • 25
  • 195
  • 267
Buzzzzer
  • 9
  • 4

1 Answers1

0

It's possible with eval:

'use strict'
class SomeClass {
    someMethod(){
    }
}
...
var sClassName = "SomeClass";
var variableClass = eval("new " + sClassName+ "()");

variableClass.someMethod();

If you wish to avoid eval, you might be able to use something like this:

var classByCase = {
   caseA: SomeClass,
   caseB: SomeOtherClass
};
var currentCase = 'caseA';
var variableClass = new classByCase[currentCase]();
ekuusela
  • 5,034
  • 1
  • 25
  • 43