javascriptでクラス名を生成するためのルールを決定しようとしています。私はクロームのdevのツールコンソールにこのスクリプトを貼り付け:Chrome Dev Toolsのカスタムクラスのjavascriptクラス名はどのように計算されますか?
var obj = {
Constr : function() { }
};
var obj2 = obj;
console.log(new obj.Constr());
console.log(new obj2.Constr());
obj2.Constr2 = function() { };
console.log(new obj.Constr2());
console.log(new obj2.Constr2());
そして、ここでは、コンソールでの結果は以下のとおりです。
obj.Constr
obj.Constr
obj2.Constr2
obj2.Constr2
クラスの名前は、コンストラクタ関数という変数によって決定されるようですもともとに割り当てられました。私はこの名前を生成するためにCDTが使用する正確なルールを探しています。また、これはGoogle Closure Compilerが認識する名前と同じですか?
Firebugで同様の動作を再現できるかどうかを確認しようとしましたが、クラス名をコンソールに表示することができません。二次的な質問として、誰かが火かき棒でこれを見る方法を知っていますか?
私が恐れていたように、CDTによってプリントアウトされた名前は、ecmascriptの仕様から来ていません。これは開発者にとってのデバッグの便利さに過ぎません。私はJavascriptをかなり新しくしていますが、一般的にはプロトタイプスタイルが好きですが、dojoやextjsなどのライブラリはOOスタイルのプログラミングスタイルに挑戦しようとしました。私はこれがJavascriptの優れた機能の1つを混乱させると思う。 –
Javascriptはほとんどすべての言語であり、実際にはかなり柔軟です。 Javascriptの上に典型的なクラスベースのオブジェクト指向を構築するライブラリがたくさんありますが、これは通常かなりうまくいきます。これらのライブラリやJavascript自体にとって必ずしも悪いことではありません。 – lanzz