我按如下方式创建自定义元素:
var myElementProto = Object.create(HTMLElement.prototype);
document.registerElement('my-element', myElementProto);
基于这个元素,我将创建一些其他元素,这些元素将继承我在此元素上定义的所有方法和属性,如下所示:
var myNewElementProto = Object.create(myElementProto);
document.registerElement('my-newElement', myNewElementProto);
我想要做的是有一些标准的方法,这些元素在DOM中相互交互,但我不确定识别所有其他定义元素的最佳方法是什么。有没有办法让我检查一个给定元素是否有一个原型是myElementProto
的后代而不只是检查它是否具有我在myElementProto
定义的某些属性?这种方法似乎可行,但如果这些属性最终被更改/删除,可能会导致问题,所以我宁愿避免它。
答案 0 :(得分:1)
如果元素原型是myElementProto的后代,则为true:
var isDescendant = Object.getPrototypeOf( element ) instanceof myElementProto;