考虑一下带有原型(prototype)链的对象:

var A = {};
var B = Object.create(A);
var C = Object.create(B);

如何在运行时检查原型(prototype)链中C是否包含A?
instanceof不适合它设计用于构造函数,我在这里不使用。

最佳答案

我的回答会很简短...

您可以使用isPrototypeOf方法,该方法将在您的对象继承自Object原型(prototype)的情况下出现,例如您的示例。

例子:

A.isPrototypeOf(C) // true
B.isPrototypeOf(C) // true
Array.prototype.isPrototypeOf(C) // false

更多信息可以在这里阅读:Mozilla Developer Network: isPrototypeOf

10-04 19:12