如何实现ES6的动态类名

简介

要实现ES6的动态类名,主要有以下几种方案。

以将一个类表达式分配给一个对象

let classes = {};
classes[someName] = class { ... };

使用对象或映射

let C = class
{ // ...
}
Object.defineProperty (C, 'name', {value: 'TheName'});

// test: 
let itsName =  (new C()).constructor.name;
// itsName === 'TheName' -> true

使用对象文字来定义具有所需名称的字段,该字段将保存新类,返回该新类

const nameIt = (name, cls) => ({[name] : class extends cls {}})[name];

使用Function

~function() {
    const name = "Lorem"

    eval(`
        var ${name} = class ${name} {} 
    `)

    console.log(Lorem) // class Lorem {}
}()
发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章