根據DOM 核心,
Attr 物件繼承了 Node 介面,但由于它們實際上不是它們所描述的元素的子節點,因此 DOM 不會將它們視為檔案樹的一部分。
并且
DOM 認為屬性是元素的屬性,而不是與它們關聯的元素具有單獨的標識
鑒于此,Attr
物件繼承的優勢是什么Node
?
DOM 規范指出:
Attr 節點出于歷史原因參與一棵樹;他們從來沒有(非空)父母或任何孩子,因此獨自在樹上。
這是一個部分答案,但我想知道是否有人對Attr
' 的Node
繼承和樹參與有更深入的解釋,而不僅僅是“歷史原因”。
抱歉,如果這是一個重復的問題,我發現的大多數問題都圍繞Attr
物件的行為,而不是其結構背后的基本原理。
uj5u.com熱心網友回復:
對于一個“為什么”的問題,你需要非常清楚你是否在問
這個決定的潛在好處是什么?,或
從歷史上看,提出了哪些論點,為什么個別委員會成員會以他們的方式投票(如果確實有討論和投票)?
在大多數情況下,第二個問題是無法回答的,但在少數情況下(例如 Tim Bray 的 Annotated XML 規范),您至少可以看到其中一位編輯提出的基本原理。
對我來說,這個決定感覺像是一種妥協。屬性與其他節點有許多共同的屬性,因此讓它們實作相同的介面是有好處的;但是有一些你并不真正想要的包袱,因為它可能會增加不必要的成本,比如擁有指向包含元素的鏈接。
坦率地說,DOM 不是一個好的設計,很難說為什么它會犯這么多設計錯誤,除了它是一個委員會匆忙拼湊起來的。JDOM 和 XOM 等后來的模型要好得多,但遺憾的是不適用于 Javascript。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/472198.html