web-dev-qa-db-ja.com

Javascriptクラスが別のものを継承するかどうかを確認する方法(objを作成せずに)?

例えば:

function A(){}
function B(){}
B.prototype = new A();

クラスBがクラスAを継承しているかどうかを確認するにはどうすればよいですか?

66
Simon

これを試してくださいB.prototype instanceof A

112
Nirvana Tikku

直接継承をテストできます

B.prototype.constructor === A

間接的な継承をテストするには、次を使用できます。

B.prototype instanceof A

(この2番目の解決策は最初にNirvana Tikkuによって与えられた)

24
Denys Séguret

2017年に戻る:
それがあなたのために働くかどうかを確認してください

A.isPrototypeOf(B)
15
pery mimon

Simonが質問でB.prototype = new A()を意味したとは思わない。これはJavaScriptでプロトタイプをチェーンする方法ではないからだ。

BがAを拡張すると仮定すると、Object.prototype.isPrototypeOf.call(A.prototype, B.prototype)を使用します

1
jlchereau