你好 Stackoverflow 的人们!我一直在浏览 Mozilla 开发人员网络的 JavaScript 指南,并在对象模型页面的详细信息中遇到了这个功能:
函数是检查一个对象是否是对象构造函数的一个实例:
function instanceOf(object, constructor) {
while (object != null) {
if (object == constructor.prototype)
return true;
if (typeof object == 'xml') {
return constructor.prototype == XML.prototype;
}
object = object.__proto__;
}
return false;
}
我的问题是,在同一页面上它说它chris
是一个类型的对象,Engineer
然后以下代码返回 true:
chris.__proto__ == Engineer.prototype;
但是,在上面的instanceOf
函数中,它使用以下比较表达式来检查对象是否是构造函数的实例:
object == constructor.prototype
表达式不应该是:
object.__proto__ == constructor.prototype
还是我在这里遗漏了一点?提前感谢大家的帮助和时间!