すべてのブラウザで、次のアラート「Foo」は縮小されても表示されますか?coffeescriptクラスの名前を取得していますか?
class Foo
alert(Foo.name)
何もドキュメントに記載されていない、私はIEが関数名に問題があることを知っている、と私は多くの問題が依存してもよいoftheseissues!
すべてのブラウザで、次のアラート「Foo」は縮小されても表示されますか?coffeescriptクラスの名前を取得していますか?
class Foo
alert(Foo.name)
何もドキュメントに記載されていない、私はIEが関数名に問題があることを知っている、と私は多くの問題が依存してもよいoftheseissues!
anyのように、このことについてオープンして混乱しています使用しているCoffeeScriptコンパイラのバージョン。最新の安定リリース(1.3.3)では、デフォルトで "name"プロパティは生成されません。
class Foo
name
プロパティは非標準と現在IEでサポートされていないので、あなたが本当にそれクロスブラウザに依存することはできません
にコンパイル。 Foo.prototype
に含まれているクラスFoo
のいずれかの方法の中からhttps://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Name
後のバージョンまたは古いバージョンでは名前プロパティが生成されると思いますか?また、この既定値をオーバーライドするフラグや、プロパティを自分で追加する必要があります。 –
私はそれが実際に削除されていると思います。したがって、古いバージョンではまだこの動作が見つかるかもしれません。 – Niko
は、あなたがライン
console.log @constructor.name
を挿入することができ、それが
Foo
を書きます。これについての詳細な情報は、MDNで入手できます。
をコンソールログに追加します。 HTH。
これはサポートされていないことが明確になりました(https://github.com/jashkenas/coffee-script/issues/2052の末尾を参照)。もしあなたもそれが欲しいなら、行きなさい。 –
WRTのコードを小さくしました - 本当に、それを渡す構成と構成に依存します。大部分は、名前付き関数文(UglifyJSの '--no-mangle-functions'など)に触れないように設定できるので、' name'プロパティはうまく動作するはずです(ブラウザがそれをまったくサポートしていない場合を除く)。もちろん、CoffeeScriptが1.3.3から手動で定義したプロパティでは、それは縮小化に関係なく常に機能するはずです(プレーンな文字列リテラルプロパティとして追加されたものとして) – shesek