【发布时间】:2016-11-12 23:37:07
【问题描述】:
如何在不构造对象的情况下检查类构造函数是否扩展了另一个类? IE 的构造函数引用。
例子
class A {
}
class B extends A {
}
var b = B;
if(typeof b === B)
【问题讨论】:
-
在您执行
b = B之后,它将始终为typeof b === typeof B,因为b和B具有相同的值,因此相同的typeof。此外,typeof任何构造函数始终是函数。 -
好像是这个的复制品?
-
正确。答案是
A.prototype instanceof B -
试试
A.prototype instanceof B.prototype看看A的构造函数是否派生自B。 -
如果你想知道一个类是继承自 Object 还是另一个类然后使用它。这将返回 false
B.__proto__ === Function.prototype,这将返回 trueA.__proto__ === Function.prototype