Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/07/2013, 20:00
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Diferencia entre nodos y elementos javascript

Cita:
scrollwidth es una propiedad que existe para los 3 tipos de elementos(html,svg,mathml)?

la propiedad offsetwidth es exclusiva de los elementos html(htmlelement)?

Hasta donde se no hay diferencia entre nodos y elementos
todo depende de cual interfaz lo defina. quien defina dicha propiedad determinará el alcance al resto de las interfaces. por ejemplo, si offsetWidth se define en la interfaz HTMLElement, entonces las interfaces que lo preceden (Element, Node) no poseen dicha propiedad pero si los que heredan de la interfaz HTMLElement (por ejemplo HTMLBodyElement).

lo antes señalado nos lleva a la segunda duda. hay diferencia entre un nodo y un elemento, aunque bien superficial. en DOM, basicamente todo es un nodo, inclusive los atributos. lo que sucede es que el DOM está estructurado por interfaces, de modo que es más fácil mantener la implementación del DOM API. si hay que hacer un cambio, es más fácil hacerlo en una sola interfaz que realizarlo en varios componentes. entonces, la interfaz Node es una interfaz bien genérica que implementa propiedades y métodos que debe heredar todo el DOM; con excepción de las constantes. luego se crean otras interfaces que implementan la interfaz Node y que a su vez van siendo más específica en cuanto al target. por ejemplo, la interfaz Element van enfocados a los elementos, que no necesariamente tiene que ser HTML sino también XML. así sucesivamente con el resto de las interfaces, como HTMLElement que como su nombre indica son propias para HTML.

en conclusión, es una forma de clasificar las partes del DOM. y si, un elemento básicamente es un nodo pero cualquier cosa no puede ser un elemento. por ejemplo, un Text no posee las propiedades que define la interfaz Element pero si la Node.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 22/07/2013 a las 21:02