gpt4 book ai didi

ecmascript-6 - 在模板文字中使用 ES6 扩展语法

转载 作者:行者123 更新时间:2023-12-04 15:40:41 25 4
gpt4 key购买 nike

我需要动态定义类,所以在我的 ES6 代码中编写了一个代码生成器:

function makeClass(className, baseClass = _DefaultBaseClass, ...args) {
return (
eval(`
class ${className} extends ${baseClass} {
constructor(${...args}) {
super(${...args})
}
}
`)
)
}

'_DefaultBaseClass' 是一个空类,用于简化上述生成器函数逻辑:
class _DefaultBaseClass() {
constructor() {}
}

除了扩展运算符之外,生成器代码一切正常。在此示例中,扩展运算符本身在模板文字之外的项目中可以正常工作。

我正在使用以下 webpack Babel 预设/插件:'react'、'es2015'、'stage-2'、'transform-runtime'。

最佳答案

正如评论中提到的 ...绑定(bind)到特定的用例。 ${...args}甚至没有多大意义。结果应该是什么?例如。如果 ${...args}相当于${args[0],args[1]} ,然后它会计算为 args[1] 的值, 因为这里 ,是逗号运算符。

模板文字可以包含任意表达式,因此您可以执行以下操作:

`${args.join(",")}`

关于ecmascript-6 - 在模板文字中使用 ES6 扩展语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42639012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com