【问题标题】:Check if class constructor extends another class [duplicate]检查类构造函数是否扩展了另一个类[重复]
【发布时间】: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,因为bB 具有相同的值,因此相同的typeof。此外,typeof 任何构造函数始终是函数。
  • 好像是这个的复制品?
  • 正确。答案是A.prototype instanceof B
  • 试试A.prototype instanceof B.prototype看看A的构造函数是否派生自B。
  • 如果你想知道一个类是继承自 Object 还是另一个类然后使用它。这将返回 false B.__proto__ === Function.prototype,这将返回 true A.__proto__ === Function.prototype

标签: javascript ecmascript-6


【解决方案1】:

您可以在instanceof 的帮助下进行检查,如下所示。

class A {

}

class B extends A {

}

class C {

}


console.log(B.prototype instanceof A);
console.log(C.prototype instanceof A);

// With instance
var b = new B();

console.log(b instanceof B);
console.log(b instanceof A);
console.log(b instanceof C);

【讨论】:

  • 我会将这个添加到我的问题中 - 但我需要知道没有构造对象,
  • @user2410532 我已经更新了代码,请看一下
  • @jfriend00 请执行sn-p并检查答案
猜你喜欢
  • 1970-01-01
  • 2013-04-09
  • 2014-10-21
  • 2016-04-06
  • 2021-02-05
  • 2015-09-08
  • 2015-08-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多