Привет, новый нуб в jQuery, и мне было интересно, являются ли объекты jQuery неизменяемыми. Например:
var obj1 = $("<tag></tag>");
var obj2 = obj1.append("something");
Будут ли obj1 и obj2 одинаковыми, что означает, что obj2 будет ссылаться на obj1?
ОБНОВИТЬ:
Вышеприведенный пример как бы царапает поверхность того, что я хочу знать, более точный вопрос: если я свяжу функцию из API jQuery, они вернут тот же объект или новый (как в случае со строками в Java)?
$("div").append("something").bind( "click", fn )
возвращает тот же объект, в то время как$("div").parent()
возвращает новый объект, а$("div").html()
вообще не возвращает объект jQuery, а строку - person Esailija   schedule 16.11.2011var a = $("div").parent()
создаст 2 объекта, и хотя похоже, что ничто не ссылается на первый объект, и он будет удален сборщиком мусора, второй объект фактически ссылается на первый объект в своем свойстве.prevObject
, поэтому в этой ситуации, если вы хранитеa
где-то, вы никогда не избавитесь от первого объекта, даже если вы используете только второй. - person Esailija   schedule 16.11.2011