实例化动态类

jay*_*onp 10 javascript oop class

在Javascript中,如何在不使用eval()并传入参数的情况下动态实例化新类?例如,假设我想创建一个新的CatViewController并传入"小猫",我该怎么做?

var myClassname = "CatViewController";
var cat = new myClassname("kitten");
Run Code Online (Sandbox Code Playgroud)

它应该解决:

var cat = new CatViewController("kitten");
Run Code Online (Sandbox Code Playgroud)

谢谢!

Cha*_*ion 8

只要函数在范围内,您就可以执行以下操作:

var cat = new this[myClassname]("kitten");
Run Code Online (Sandbox Code Playgroud)

另一种类似方式:

var classes = {
    A: function (arg) {

    },
    B: function (arg) {

    },
    C: function (arg) {

    }
};

var a = new classes["A"]("arg");
Run Code Online (Sandbox Code Playgroud)