Почему такая конструкция работает:
let outputData = document.querySelector('#outputData');
outputData.innerHTML = 'Введите значение';
А вот такая уже нет:
let outputData = document.querySelector('#outputData').innerHTML;
outputData = 'Введите значение';
Складывается впечатление, что методы нельзя добавлять в переменную. Или возможно я не до конца понимаю особенности присваивания переменной.
Кто может объяснить эту ситуацию?
Ответ
Складывается впечатление, что методы нельзя добавлять в переменную.
Методы можно добавлять в переменную, однако, в данном случае в коде нет методов.
innerHTML - это свойство, возвращающее строку.
возможно я не до конца понимаю особенности присваивания переменной.
Особенностей нет: присваивая что-то в переменную, никак не влияет на предыдущее значение переменной.
var a = {};
a = 'a';
a = 3;
Во всех трех случаях предыдущее значение теряется и никак не меняется.
Почему работает первый вариант?
В первом варианте: outputData.innerHTML = 'Введите значение';
Нет присваивания переменной. Есть изменение значения свойства объекта.
При этом, .innerHTML еще и особое свойство, которое разбирает переданную строку и генерирует нужный html, который затем и отображается.
Комментариев нет:
Отправить комментарий