原文出自:
http://javascript.gakaa.com/default.aspx
Every scriptable element object in modern browsers is, at its core, a descendant of the basic
HTMLElement abstract object in the W3C DOM. The
HTMLElement, itself, inherits properties and methods from the
Node and
Element chain in the core DOM module. To this inherited set of features, the
HTMLElement adds properties that apply to HTML elements (in contrast to XML elements), including the
className,
dir,
id,
lang, and
title properties. All individual HTML element objects, such as
HTMLBodyElement and
HTMLFormElement, inherit their characteristics from the
HTMLElement object. That's one reason why the list of shared properties and methods is so long: it includes items inherited from the long chain of
Node to
Element to
HTMLElement.
The terminology of the DOM abstract object names (e.g.,
HTMLBodyElement) is not essential knowledge to scripting element objects. That is to say, the abstract object names almost never appear in scripts because scripts reference instances of such HTML objects by way of their identifiers or through properties of other objects (such as
eventObject
.target). The only place you are likely to see these abstract names is during debugging, when you use
alert( ) methods or other tools to inspect the object referenced by a variable. Netscape 6 reports such object references as instances of a specific HTML element class (e.g.,
HTMLParagraphElement or
HTMLInputElement). This information, in itself, is often far more helpful than IE's reporting of the reference being just
[object].