检查原型的继承,而不是实例

时间:2014-11-20 12:37:54

标签: javascript inheritance prototypal-inheritance

让我说我有:

function Pet(){}
Pet.prototype.breathe = function(){}

并且

function Cat(){}

然后我继续做:

Cat.prototype = Object.create(Pet.prototype)
Cat.prototype.purr = function(){}

我知道我可以查看

var cat = new Cat()
console.log(cat instanceof Pet); //true

但是如何在没有实例化的情况下检查函数Cat 是否Pet的实例?

我能想到的最简单和最黑客的方式是......

Pet.prototype.$$pet = true

然后检查

console.log(Cat.prototype.$$pet) //true

但这看起来并不是很好,因为我可以一起去做

Cat.prototype.$$pet = true

1 个答案:

答案 0 :(得分:1)

原来你可以实际使用

Cat.prototype instanceof Pet

MDN的instanceof示例显示了这个

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/instanceof