コードをよく見ると、次のような2行が表示されます。
Foo.prototype = new ParentClass;//makes subclass
Foo.prototype.constructor = Foo;
2行目を省略した場合、コンストラクター名は親クラスの名前になります。nameプロパティは読み取り専用である可能性がありますが、prototype
そうではなく、constructor
プロトタイプのプロパティでもありません。このようにして、 「クラス」 /コンストラクターの名前を設定できます。
__proto__
また、これはオブジェクトのプロトタイプを取得する方法ではないことに注意してください。このスニペットを最適に使用します。
var protoOf = Object && Object.getPrototypeOf ? Object.getPrototypeOf(obj) : obj.prototype;
//obviously followed by:
console.log(protoOf.constructor.name);
//or:
protoOf.addProtoMethod = function(){};//it's an object, thus protoOf references it
//or if all you're after is the constructor name of an instance:
console.log(someInstance.constructor.name);//will check prototype automatically
本当にそれと同じくらい簡単です。