、これら両者を比較:javascriptで名前空間のコンストラクタの関数名を見つける方法は?例えば
function Person(name) {
this.name = name;
}
var john = new Person('John');
console.log(john.constructor);
// outputs: Person(name)
var MyJSLib = {
Person : function (name) {
this.name = name;
}
}
var john2 = new MyJSLib.Person('John');
console.log(john2.constructor);
// outputs: function()
最初のフォームは、実行時にデバッグのために有用です。 2番目のフォームでは、オブジェクトの種類を把握するためにいくつかの追加ステップが必要です。
私は、記述的なtoString関数を書くことができ、あるいはより多くの情報を得るためにコンストラクタのtoSourceメソッドを呼び出すことができますが、私は可能な限り簡単な方法を望んでいます。
これを行う方法はありますか?提案?
+1、thx!私はそれを試していない、と私は仮定していた(間違って)そのフォームは、グローバル名前空間にPersonコンストラクタを導入するだろう。知っておいてよかった。 –
匿名関数は理由のために匿名です:このプロパティ割り当ての右手側にあるのは単なる関数式です(これは定義によりオプションの識別子を持つことができます) – kangax