考虑到我想扩展本机button
元素,并创建自己的super-button
元素。据我所知,它必须遵循以下模式:
var SuperButton = document.registerElement('super-button', {
prototype: Object.create(HTMLButtonElement.prototype),
extends: 'button'
});
在我看来,这很奇怪-prototype
和extends
参数不是一回事吗?如果我明确地说要super-button
使用HTMLButtonElement
原型,为什么还需要指定它扩展了button元素?这是多余的吗?对我来说,它看起来完全一样。
根据“自定义元素”规范:
通常,不能简单地通过查看扩展的元素接口来确定扩展元素的名称,因为许多元素共享同一接口(例如q和blockquote都共享HTMLQuoteElement)。
换句话说,尽管对于<button>
元素来说可能是多余的,但通常它并不是多余的,并且规范需要支持一般情况。
我会争辩说,这甚至不是多余的<button>
,因为没有什么可以阻止您这样做:
var SuperButton = document.registerElement('super-button', {
prototype: Object.create(HTMLButtonElement.prototype),
extends: 'a'
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句