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?