Usando el almacén de datos de jQuery frente a las propiedades de expando

Estoy desarrollando código usando jQuery y necesito almacenar datos asociados con ciertos elementos DOM. Hay un montón de otras preguntas sobrecómo para almacenar datos arbitrarios con un elemento html, pero me interesa más por qué elegiría una opción sobre la otra.

Digamos, por el bien de un argumento extremadamente simplificado, que quiero almacenar una propiedad "lineNumber" con cada fila en una tabla que sea "interesante".

La opción 1 sería simplemente establecer una propiedad expando en cada elemento DOM (espero que esté usando el término 'expando' correctamente):

$('.interesting-line').each(function(i) { this.lineNumber = i; });

La opción 2 sería usar la función data () de jQuery para asociar una propiedad con el elemento:

$('.interesting-line').each(function(i) { $(this).data('lineNumber', i); });

Ignorando cualquier otra deficiencia de mi código de muestra, ¿existen razones sólidas por las que elegiría un medio de almacenamiento de propiedades sobre el otro?

Respuestas a la pregunta(3)

Su respuesta a la pregunta