2011-02-11 62 views
0

我一直在想關於DOM的一個愚蠢的事情。爲什麼標準定義NodeList的後綴List以清楚它是一個數組,同時具有一些屬性或功能,如childNodesgetElementsByTagName,它們使用後綴字母s爲什麼命名:NodeList vs childNodes

當標準定義具有不同後綴的成員用於相同目的(描述數組)時,我發現它是矛盾的。

編輯:它實際上似乎NodeList甚至不是一個數組。這是否解釋了這一點?

+0

這兩個函數都不返回數組(它們返回NodeList實例)。也許原因是有一個Node類和一個Nodes類可能會讓人困惑,所以他們選擇了NodeList來消除歧義......? – ircmaxell

+0

他們可以稱它爲'ListOfNodes'。那會有'''後綴。但'NodeList'更短,聽起來更好。 –

回答

1

NodeList是一個接口。

childNodesNode接口的成員。
getElementsByTagNameDocument接口的成員。

順便說一句,這兩個成員返回的值爲NodeList

所以,有一個區別:一個是接口,另外兩個是接口的成員。

+0

那麼,你是說他們用List字和成員的字母s來命名接口? – Tower

+0

@rFactor afaik,NodeList是唯一以「List」結尾的接口。 NodeList和NamedNodeMap是(afaik)表示集合的唯一接口 - 所有其他接口都表示單個對象。我的猜測是,名稱「NodeList」被選擇出於方便。他們本來可以與ListOfNodes一起去。 –