Это правильный способ кэширования объекта для последующего использования.
var x = $value.children().andSelf().filter('embed'), vsrc = x.attr('src'), vwidth = x.attr('width'), vheight = x.attr('height');
Да.
Однако вы можете улучшить форматирование:
var x = $value.children().andSelf().filter('embed'), vsrc = x.attr('src'), vwidth = x.width(), vheight = x.height();
Кроме того, вы можете использовать width() и height() для получения размеров элемента.
width()
height()
Да, это именно то, как «повторно» использовать объект jQuery, если вы не хотите его связывать.(Цепочка может сделать ваш код трудным для чтения, если вы злоупотребляете им, поэтому часто это хорошая альтернатива.)
Обычно, хотя это и не стандарт, дать вашей переменной имя, начинающееся с $чтобы пометить его как объект jQuery:
$
var $embed = $value.children().andSelf().filter('embed');
(Джоэл в нотации "приложения венгерский".)