AttrはNodeを継承している

投稿日:

AttrとNodeの関係

DOMにはNodeとAttrというインタフェースがあります。

MDNの記事を見てて、何でAttrがないのと思って英語版に追加したのですが、 実は結構ややこしいことになってたそうです。

まず、W3CのDOM 4ではAttrはNodeを継承していません。

しかし、DOMの策定は実質的にはWHATWGが担っています。 こちらでは、AttrはNodeを継承しています。

しかし、Node treeには記載がありません。

ややこしいことになっています。

一度はAttrはNodeを継承しなくなったらしい

自分が見たのが、以下のIssueです。

ここでは最後に’againt’と書かれています。 ということはすなわち、一度は継承しなくなったらしいです。 ここからは推測ですが、以下のようになったと思われます。

  • 2015/11以前: WHATWGでAttrはNodeを継承しなくなった。
  • 2015/11: W3CのDOM 4でWHATWGの仕様通りにAttrはNodeを継承しなくなった。
  • 2016/8: しかし問題があるので、AttrがNodeを継承するように戻った。

じゃあ、Node treeにないのは何でかというと、 それは以下のように、Issueとして上げられています。

なので、仕様上は残っているのが正しいようです。 もっとも、残ってるのは互換性のためだけで、使う理由はないと思います。

辞書