1

是否可以执行以下操作:

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”。

4

1 回答 1

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

http://jsfiddle.net/BFxnb/

于 2013-10-04T20:28:09.397 回答