获得coffeescript课程的名称?

时间:2012-06-03 04:57:01

标签: coffeescript introspection

以下警告所有浏览器中的“Foo”,即使缩小了吗?

class Foo

alert(Foo.name)

文档中没有说明任何内容,我知道IE在函数名称方面存在问题,而且我对此处提出的许多问题感到困惑,例如any of these { {3}} issues

2 个答案:

答案 0 :(得分:10)

Foo中包含的任何类Foo.prototype的方法中,您可以插入行

console.log @constructor.name

它会写

Foo

到您的控制台日志。 HTH。

答案 1 :(得分:8)

这可能取决于您使用的CoffeeScript编译器版本。在最新的稳定版本(1.3.3)中,默认情况下不会生成“name”属性。

class Foo

编译成

var Foo;
Foo = (function() {
  function Foo() {}
  return Foo;
})();

由于name属性是非标准的,并且IE目前不支持,因此您无法真正依赖它跨浏览器。有关这方面的详细信息,请访问MDN:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Name