如何扩展现有的自定义元素?

How to extend an existing custom element?

我有一个自定义元素,名为 x-foo。我想扩展它,并创建一个 x-foo-extended 元素,但它不起作用。我收到此错误:

未捕获的 NotSupportedError:无法在 'Document' 上执行 'registerElement':类型 'x-foo-extended' 的注册失败。 'extends' 中指定的标签名称是自定义元素名称。请改用继承。

    var xFooExtendedProto = Object.create(xFoo.prototype);

    xFooExtendedProto.someCustomFunc = function() {
        // ...
    };

    xFooExtended = document.registerElement('x-foo-extended', {
        prototype: xFooExtendedProto,
        extends: 'x-foo'
    });

根据 spec ,这是不允许的。 从规格: “如果 BASE 不存在或者是自定义元素的接口,则设置 ERROR 到 InvalidName 并停止。"

资料来源:如 Chrome 中实施自定义元素的人员所述 https://lists.w3.org/Archives/Public/public-webapps/2014OctDec/0155.html