SubClass.prototype instanceof SuperClass
で判定します。
検証コード:
assert = require 'assert'
Foo = class
Bar = class extends Foo
Baz = class extends Bar
Hoge = class
assert(Bar.prototype instanceof Foo)
assert(Baz.prototype instanceof Bar)
assert(Baz.prototype instanceof Foo)
assert(Foo.prototype instanceof Foo is false)
assert(Hoge.prototype instanceof Foo is false)
assert(Foo.prototype instanceof Object)
assert(Foo.prototype instanceof Array is false)
なお、これは Node.js の util.inherits
で作成したサブクラスの判別方法と同じです。