@Alexanderkrupnitsky
начинающий разработчик

Как правильно присваивать переменную?

Почему такая конструкция работает:
let outputData = document.querySelector('#outputData');
outputData.innerHTML = 'Введите значение';


А вот такая уже нет:
let outputData = document.querySelector('#outputData').innerHTML;
outputData = 'Введите значение';


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

Кто может объяснить эту ситуацию?
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
SagePtr
@SagePtr
Еда - это святое
Потому что в первом случае вы присваиваете переменной объект, а потом уже взаимодействуете с его свойством.
Во втором случае - вы присваиваете переменной значение свойства, которое является строкой, а строки в JS передаются по значению, а не по ссылке (в отличие от объектов и массивов).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@diadiafiodor
какой-то человек с улицы
Ваша переменная outPutData хранит ссылку на экземпляр объекта, это у вас там какой-нибудь div или span, не важно, любой элемент разметки. Инструкция outputData = 'Введите значение' стирает ее и кладет в переменную строку 'Введите значение'. Если вам нужно помнить это строку положите ее в отдельную переменную
let string = 'Введите значение'
если вам нужно чтоб ваша строка стала методом для outputData, можно прописать
outputData.prop=string,
проконсольте и убедитесь что она теперь стала свойством outPutData.
Тем не менее на экран она не выведется, потому что нужно сначала сделать из нее textNode (с помощью все того же innerHTML например), в общем курите мануал, потому что никто не будет создавать отдельно для вас туториал на каждый чих, когда все уже написано в справочниках, у Фленагана например.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы