@coderxx
keep calm and learn js

Почему нельзя обращаться к css-свойству через переменную?

let x = document.getElementById('wrap').style.backgroundColor;
x = 'black';

Данная конструкция не срабатывает. Это особенность языка, или я что-то делаю не так?
  • Вопрос задан
  • 105 просмотров
Решения вопроса 2
zendor
@zendor
В x у вас хранится не ссылка на элемент, а значение свойства backgroundColor.
const x = document.getElementById('wrap');
x.style.backgroundColor = 'black';
Ответ написан
sergiks
@sergiks Куратор тега JavaScript
♬♬
В JS примитивы (строки, числа) передаются по значению – копируются, грубо говоря.
А вот объекты всегда передаются по ссылке: меняете его свойство – оно меняется везде.
Подробнее.

В поле backgroundColor хранится строка. Она копируется, обратной связи нет.

Зато уже style – это объект, который передается по ссылке и можно манипулировать его свойствами:
let style = document.querySelector('h1.question__title').style;
style.backgroundColor = 'black';
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы