【发布时间】:2015-06-01 08:41:51
【问题描述】:
是否有任何“和谐”的方式从 ES6 类实例中获取类名?除了
someClassInstance.constructor.name
目前我指望 Traceur 实施。而且似乎 Babel 有一个针对 Function.name 的 polyfill,而 Traceur 没有。
总结一下:在 ES6/ES2015/Harmony 中没有其他方法,在 ES.Next 中没有任何预期的 ATM。
它可能为未缩小的服务器端应用程序提供有用的模式,但在用于浏览器/桌面/移动设备的应用程序中是不需要的。
Babel uses core-js 到 polyfill Function.name,应该为 Traceur 和 TypeScript 应用程序手动加载它。
【问题讨论】:
-
我遇到了同样的问题;对于 Traceur 来说,唯一的解决方案是解析实际的类代码本身以提取名称,我认为这不是和谐的。我只是吞下了药丸并切换到 Babel; Traceur 的发展似乎有些停滞,很多 ES6 特性实现得很差。正如你所提到的,
instance.constructor.name和class.name在正确的 ES6 中返回类名。 -
似乎是唯一的办法。
-
这是在 ES6 标准中吗?
-
值得一提的是,如果你丑化你的代码,
someClassInstance.constructor.name将会被破坏。 -
stackoverflow.com/questions/2648293/… 可能想看看这个,应该和
.constructor一起工作。
标签: javascript ecmascript-6 traceur