考虑一下带有原型(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