我怎么知道我继承了哪个对象

时间:2012-11-15 23:14:02

标签: javascript oop

在javascript中,我怎么知道哪个对象我无法理解? 例如

function a() {
    this.c = 1;
}

function b() {
    this.d = 2;
}
b.prototype = new a();​

如何检查b是否继承?

谢谢。

4 个答案:

答案 0 :(得分:2)

使用instanceof operator

//capital letters indicate function should be used as a constructor
function A() {...}
function B() {...}
B.prototype = new A();
var a,
    b;
a = new A();
b = new B();

console.log(a instanceof A); //true
console.log(a instanceof B); //false
console.log(b instanceof A); //true
console.log(b instanceof B); //true
console.log(B.prototype instanceof A); //true

答案 1 :(得分:1)

试试这个

 b.prototype.constructor.name

工作示例:http://jsfiddle.net/psrcK/

答案 2 :(得分:1)

使用b.prototype的构造函数属性或b的任何实例。

function a(){
  this.c=1;
}

function b(){
  this.d=2;
}

b.prototype=new a();

x = new b()

if(x.constructor == a){
    // x (instance of b) is inherited from a
}

答案 3 :(得分:0)

你可能想要instanceOf

if (b instanceOf a) {
    console.log("b is instance a")
}

这也有走遍整个原型链的优势,所以如果它是父母,祖父母等等并不重要