Каков программный язык для этого явления? - PullRequest
0 голосов
/ 09 июня 2010

Вот код JavaScript (jquery) для добавления ряда изображений:

var tr = $('<tr>');
var td = '<td><img src="myimg.jpg"/></td>';
tr.append(td).append(td).append(td);
$('#mytable tbody tr:eq(0)').before(tr);
tr.empty(); //I really don't need this line...

Технически tr.empty() не должно было работать.Это на самом деле противоположно тому, что я хочу.Каков технический термин для этого поведения - вы добавили tr в DOM, но все вызовы функций jquery для этого объекта все еще работают, где, как вы обычно не ожидаете, что он будет работать, т.е. вносите изменения в DOM?

Ответы [ 2 ]

1 голос
/ 09 июня 2010

Я думаю, у вас есть случай общего изменяемого объекта.Вы модифицируете объект в одном месте и с удивлением видите изменения, видимые в другом месте.Это не технически неправильно;это именно то, что происходит, когда у вас есть несколько ссылок на объект, который можно изменить.

0 голосов
/ 09 июня 2010

Если для этого есть определенный термин, кроме «ссылки на объект», я не знаю, что это такое.Я бы предположил, что ваше ожидание:

все вызовы функций jquery для этого объекта все еще работают, где, как вы обычно не ожидаете, что он будет работать, т.е. вносить изменения в DOM?*

должен быть скорректирован - для переменных объекта следует ожидать, что при любой конкретной ссылке, через которую делается изменение, все ссылки видят обновленный объект.

...