Javascript 测试构造函数链中的构造函数是否正确

Javascript 测试构造函数链中的构造函数是否正确,javascript,Javascript,我正试图用JavaScript实现一个受GTK+启发的web小部件工具包。其中一个构造函数链 gtk.widget => gtk.container => gtk.bin => gtk.window 每个gtk.widget都有一个showAll方法,当且仅当widget是gtk.container或派生(如gtk.bin或gtk.window)时,该方法才会递归显示该小部件的子项。显然,如果它不是gtk.container或派生工具,我们就不应该做任何事情,因为所讨论的小部

我正试图用JavaScript实现一个受GTK+启发的web小部件工具包。其中一个构造函数链

gtk.widget => gtk.container => gtk.bin => gtk.window
每个
gtk.widget
都有一个
showAll
方法,当且仅当
widget
gtk.container
或派生(如
gtk.bin
gtk.window
)时,该方法才会递归显示该小部件的子项。显然,如果它不是
gtk.container
或派生工具,我们就不应该做任何事情,因为所讨论的小部件不能包含任何内容

作为参考,这里是我的继承函数;这可能不是最好的,但这是一个开始:

function inherit(target, parent) {
    target.prototype = new parent;
    target.prototype.constructor = target;
}
我知道我可以像这样检查直接构造函数:

if (this.constructor === gtk.container) ...
但是,这只测试直接构造,而不是(比如)如果对象是
gtk.bin
gtk.window
。如何测试
gtk.container
是否位于构造函数链的某个位置?

使用运算符:

if (this instanceof gtk.container) ...

谢谢我不知道
instanceof
会通过构造函数链进行检查。@Delan Azabani:没问题,谢谢你纠正我的打字错误:-)