Object.create 和原型链的 Instanceof 等效项
考虑这样一个带有原型链的对象:
var A = {};
var B = Object.create(A);
var C = Object.create(B);
如何在运行时检查 C 的原型链中是否有 A?
instanceof
不适合,因为它被设计为与构造函数一起使用,而我在这里没有使用它。
Consider such an object with a prototype chain:
var A = {};
var B = Object.create(A);
var C = Object.create(B);
How to check in runtime if C has A in its prototype chain?
instanceof
doesn't fit as it's designed to work with constructor functions, which I'm not using here.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我的答案很简短......
您可以使用 isPrototypeOf 方法,如果您的对象继承自 Object 原型(如您的示例),该方法就会出现。
示例:
更多信息可以在此处阅读: Mozilla 开发者网络: isPrototypeOf
My answer will be short…
You could use the
isPrototypeOf
method, which will be present in case your object inherits from the Object prototype, like your example.example:
More info can be read here: Mozilla Developer Network: isPrototypeOf
您可以通过递归调用
Object.getPrototypeOf
来迭代原型链:http://jsfiddle。 NET/Xdze8/.You could iterate back through the prototype chain by calling
Object.getPrototypeOf
recursively: http://jsfiddle.net/Xdze8/.