【发布时间】:2011-01-28 16:43:00
【问题描述】:
在我自己的一些旧代码中,我使用以下代码:
Object.prototype.instanceOf = function( iface )
{
return iface.prototype.isPrototypeOf( this );
};
然后我做(例如)
[].instanceOf( Array )
这可行,但似乎以下内容也可以:
[] instanceof Array
现在,这当然只是一个非常简单的例子。因此,我的问题是:
a instanceof b总是和b.prototype.isPrototypeOf(a)一样吗?
【问题讨论】:
-
虽然您始终可以使用
instanceof(在 RHS 上使用构造函数),但并非所有对象都可以从Object.prototype继承。Object.create(null) instanceof Something和({}).instanceOf({prototype:Something.prototype})将在反向失败的情况下工作(并产生false)。
标签: javascript inheritance prototype instanceof