获得coffeescript课程的名称?

Mar*_*une 9 introspection coffeescript

以下会在所有浏览器中提醒"Foo",即使缩小了吗?

class Foo

alert(Foo.name)
Run Code Online (Sandbox Code Playgroud)

在doc没有什么是说,我知道,IE浏览器有功能名称的问题,我很困惑与开这一点,就像许多问题任何 这些 问题 !

Jef*_*key 10

从包含在其中的任何类方法FooFoo.prototype,您可以插入该行

console.log @constructor.name
Run Code Online (Sandbox Code Playgroud)

它会写

Foo
Run Code Online (Sandbox Code Playgroud)

到您的控制台日志.HTH.

  • 现在很清楚(参见https://github.com/jashkenas/coffee-script/issues/2052的结尾)它不受支持.如果你也想要它去寻求它! (3认同)

Nik*_*iko 8

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

class Foo
Run Code Online (Sandbox Code Playgroud)

汇编成

var Foo;
Foo = (function() {
  function Foo() {}
  return Foo;
})();
Run Code Online (Sandbox Code Playgroud)

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