Chrome调试器不显示动态类名

时间:2016-08-02 14:07:06

标签: javascript class ecmascript-6 google-chrome-devtools babeljs

我的Javascript代码动态生成一堆ES2015类,包括自定义名称:

const EntitySubclass = class extends Entity {};

Object.defineProperties(EntitySubclass, {
    name: { value: dynamicClassName }
});

这在代码本身中工作正常。 CustomClass.name返回预期的名称。但是,当在Chrome控制台或调试器中显示时,其中一个类始终称为EntitySubclass。我也试过这个:

const obj = { [dynamicClassName]: class extends Entity {} };
const EntitySubclass = obj[dynamicClassName];

和此:

const obj = {};
obj[dynamicClassName] = class extends Entity {};
const EntitySubclass = obj[dynamicClassName];

但这会导致调试器显示一些自动生成的名称(_class3)。

可以修复吗?

我正在使用Babel编译,我记得在某个地方读过这个行为取决于所使用的Babel插件。所以这是我的Babel配置:

"presets": [
    "es2015"
],
"plugins": [
    ["babel-plugin-transform-builtin-extend", { "globals": ["Set"] }],
    "transform-object-rest-spread",
    "transform-decorators-legacy",
    "transform-class-properties",
    "transform-es2015-instanceof",
    "transform-async-to-generator",
    "transform-function-bind",
    "syntax-flow",
    "transform-flow-strip-types"
]

0 个答案:

没有答案