Eth*_*han 6 ecmascript-6 template-literals
我需要动态定义类,所以在我的ES6代码中编写了一个代码生成器:
function makeClass(className, baseClass = _DefaultBaseClass, ...args) {
return (
eval(`
class ${className} extends ${baseClass} {
constructor(${...args}) {
super(${...args})
}
}
`)
)
}
Run Code Online (Sandbox Code Playgroud)
'_DefaultBaseClass'是一个用于简化上述生成器函数逻辑的空类:
class _DefaultBaseClass() {
constructor() {}
}
Run Code Online (Sandbox Code Playgroud)
除了扩展运算符之外,生成器代码一切正常.在此示例中,扩展运算符本身在我的项目中的模板文字之外正常工作.
我正在使用以下webpack Babel预设/插件:'react','es2015','stage-2','transform-runtime'.
正如评论中提到的,...绑定到特定的用例。${...args}甚至没有多大意义。结果应该是什么?例如,如果${...args}将等价于${args[0],args[1]},那么它将评估为 的值args[1],因为这里,是一个逗号运算符。
模板文字可以包含任意表达式,因此您可以执行以下操作:
`${args.join(",")}`
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1245 次 |
| 最近记录: |