如果你的代碼仔細觀察,你會看到這樣幾行:
Foo.prototype = new ParentClass;//makes subclass
Foo.prototype.constructor = Foo;
如果你省略第二行,要比構造函數名稱將是該父類。 名稱屬性很可能是隻讀的,但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
就這麼簡單,真的。