En jQuery, ¿puedo almacenar elementos usando .data () en otro elemento para una recuperación rápida?

¿Puedo usar la function data () para almacenar un elemento dom (o un elemento jQuery) en otro elemento? (ver el código a continuación)

¿Lo almacena por valor o por reference? ¿Es una buena práctica?

Quiero poder encontrar rápida y fácilmente el elemento esclavo (ver el código a continuación) de un elemento maestro, así:

$slave = $('.some .path .to .slave'); $master = $('.some .path .to .master'); $master.data('slave', $slave); $master.click(function (){ $(this).data('slave').toggle() }); 

(Obviamente, el código es estúpido, pero en realidad estoy recorriendo muchos elementos maestros y esclavos).

Puede almacenar lo que quiera, independientemente de si debe o no.

Las variables JS son references a objects, ¿no? (Eso es solo parcialmente retórico: ¿qué otra cosa podría devolver una consulta DOM que no sea una reference? ¿Una copy en profundidad?)

Sé que puedes hacerlo:

 var slavePath=$('.some .path .to .slave'); var master=$('.some .path .to .master').data('slave', slavePath); master.click(function(){ $($this.data('slave')).toggle()}); 

Simplemente almacene el selector en el esclavo, no en el object completo.