9

是否会在所有浏览器中出现以下警报“Foo”,即使在缩小时也是如此?

class Foo

alert(Foo.name)

文档中没有说明任何内容,我知道 IE 的函数名称存在问题,并且我对有关此问题的许多问题感到困惑,例如这些问题中的任何 一个

4

2 回答 2

10

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

console.log @constructor.name

它会写

Foo

到您的控制台日志。HTH。

于 2012-08-15T11:23:44.707 回答
8

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

class Foo

编译成

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

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

于 2012-06-03T08:18:13.157 回答