是否可以执行以下操作:
function A() {}
function B() {}
B.prototype = A;
function C() {}
C.prototype = A;
A.prototype.myname = function() { /* get 'B' or 'C' here */ }
所以当我例如调用B.myname()时,我会在函数体中使用名称“B”吗?
按预期尝试this.constructor.name
每次都会返回“A”。
答案 0 :(得分:1)
我想你在找这个?
function A() {}
A.prototype.myname = function() {
return this.constructor.name;
};
function B() {}
B.prototype = new A();
B.prototype.constructor = B;
var b = new B();
console.log(b.myname()); // logs B