Если функция изменяет, какие элементы находятся в выделении, то да, будет создан новый объект.
Например:
var link = $('#myLink'),
span = link.find('span');
link
- это объект, отличный от span
. Однако , оригинальный объект на самом деле не потерян. Вы можете очень легко вернуться к нему с помощью метода end
, который в основном откатывает операцию манипуляции.
$('#myLink')
.find('span') // get the span elements
.css('color', '#fff') // modify them
.end() // go back to the original selection
.css('font-size', '24px'); // modify that
Таким образом, если бы у вас было очень большое количество связанных вызовов выбора, которые не использовали end
, вы могли бы получить очень большой объект (потому что была бы цепочка объектов, ссылающихся на объект, который их создал) , Однако это было бы невероятно неуклюжим дизайном, поэтому вряд ли вы это делаете, в то время как сборка мусора в Javascript обычно должна означать, что объекты, с которыми вы работали, не остаются в памяти.