js 或 typescript 如何实现 php 的可变变量

let b = 'Book()'

let a = new b 等于 let a = new Book()

ts js能够实现嘛?或者变通的解决方案?不想傻傻地switch了

阅读 4.6k
3 个回答
let b = Book;
let a = new b() 

不行吗?对付这种应用场景完全够了,何必强求这种方式,js就要用js的写法。

你可以将需要应用可变变量的量都放到一个对象里

let scope = {}

class Book { ... }
scope.Book = Book

let b = 'Book'
let a = new scope[b]()

一种猥琐的办法:

new Function("return new Test();")().a();

其实吧,TypeScript 定义一下接口对象,比如:

interface IBook {
    executer();
}

各种实现类实现该接口。

这样更符合OOP吧!!

推荐问题