Usando o armazenamento de dados do jQuery vs. expando properties

Estou desenvolvendo código usando jQuery e preciso armazenar dados associados a determinados elementos DOM. Há um monte de outras perguntas sobrecomo para armazenar dados arbitrários com um elemento html, mas estou mais interessado no motivo de escolher uma opção sobre a outra.

Digamos, por causa do argumento extremamente simplificado, que eu quero armazenar uma propriedade "lineNumber" com cada linha em uma tabela que seja "interessante".

A opção 1 seria apenas definir uma propriedade expando em cada elemento DOM (espero que eu esteja usando o termo 'expando' corretamente):

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

A opção 2 seria usar a função data () do jQuery para associar uma propriedade ao elemento:

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

Ignorando quaisquer outras deficiências do meu código de exemplo, existem fortes razões pelas quais você escolheria um meio de armazenar propriedades sobre o outro?

questionAnswers(3)

yourAnswerToTheQuestion