/ / Relação subclasse linguística para ES6 [duplicado] - herança, ecmascript-6, instanceof

Relação idiossincrática de subclasse para ES6 [duplicado] - herança, ecmascript-6, instância de

No ES6, eu tenho uma hierarquia de herança

class A {}
class B extends A {}

Estou à procura de um análogo para instanceof para classes herdadas, por exemplo

const X = B;

if (X extensionof A) {
console.log("X derives from A");
} else {
console.log(":(");
}
// I wish that this would log: "X derives from A",
// but `extensionof` is a syntax error.

Eu não sei de nada como extensionof no ES6. Meu melhor é X === A || X.prototype instanceof A para uma relação "igual ou subclasse" ou X.prototype instanceof A para uma relação de "subclasse de". Estou sentindo falta de algo mais bonito?

Respostas:

1 para resposta № 1

A maneira mais fácil provavelmente seria

if (B.prototype instanceof A) ...

Você poderia fazer uma função se quisesse

function extensionOf(superClass, subClass) {
return subClass.prototype instanceof superClass;
}

if (extensionOf(A, B)) ...

@loganfsmyth menciona outra solução que também funcionaria

if (A.isPrototypeOf(B)) ...