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吧!!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题