检查自定义元素原型是否源自特定原型

Check if custom element prototype is derived from a specific prototype

本文关键字:原型 是否 自定义 元素 检查      更新时间:2023-09-26

我正在创建一个自定义元素,如下所示:

var myElementProto = Object.create(HTMLElement.prototype);
document.registerElement('my-element', myElementProto);

基于这个元素,我将创建一些其他元素,这些元素将继承我在这个元素上定义的所有方法和属性,比如:

var myNewElementProto = Object.create(myElementProto);
document.registerElement('my-newElement', myNewElementProto);

我想做的是用一些标准的方式让这些元素在DOM中相互交互,但我不确定识别所有其他定义元素的最佳方式是什么。有没有一种方法可以让我检查给定元素是否有一个myElementProto的后代原型,而不必检查它是否有我在myElementProto上定义的某些属性?这种方法看起来是可行的,但如果这些属性最终被更改/删除,可能会导致问题,所以我宁愿避免它。

如果元素原型是myElementProto:的后代,则为true

var isDescendant = Object.getPrototypeOf( element ) instanceof myElementProto;