【发布时间】:2012-08-25 14:47:50
【问题描述】:
您好 Stackoverflow 的人们!我一直在浏览 Mozilla 开发者网络的 JavaScript 指南,并在 Details of the object model 页面上遇到了这个功能:
功能是检查一个对象是否是对象构造函数的实例:
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
或者我在这里遗漏了一点?提前感谢大家的帮助和时间!
【问题讨论】:
-
啊哈,谢谢!我认为我在编码上花费了太多时间。休息时间:P
-
你应该接受正确的答案,而不是仅仅发表评论。
-
@millimoose 答案以前是评论本身。你觉得我会怎么接受?现在我可以并且做到了。
标签: javascript