Всем привет.
Обнаружил следующую странность при выводе объекта в консоль (проверял в FF35.0 и Chrome 40.0.2214.91 m).
На странице html есть элемент:
<div id="test" class="first">Тест</div>
Если выполнять следующий js-код:
var tt = document.getElementById('test');
console.log('Тест: %s', tt.className);
console.log('Тест: %o', tt);
tt.className = 'second';
console.log('Тест: %s', tt.className);
console.log('Тест: %o', tt);
то в консоле получаем
:
"Тест: first"
"Тест: " <div class="second" id="test">
"Тест: second"
"Тест: " <div class="second" id="test">
Возникает вопрос: каким образом в консоль выводится
"Тест: " <div class="second" id="test">
с значением параметра class="
second", если замена значения этого параметра происходит после вывода в консоль?
При этом, если выполнять ранее указанный js-код в отладчике пошагово или с задержкой перед сменой значения параметра, например, используя alert
var tt = document.getElementById('test');
console.log('Тест: %s', tt.className);
console.log('Тест: %o', tt);
alert('ok');
tt.className = 'second';
console.log('Тест: %s', tt.className);
console.log('Тест: %o', tt);
то в консоли получаем
ожидаемый (правильный) результат:
"Тест: first"
"Тест: " <div class="first" id="test">
"Тест: second"
"Тест: " <div class="second" id="test">
В чем может быть проблема?