alexdeg
@alexdeg
Новатор

Почему не работает присваивание конструкции?

Почему не работает этот код, не переключается фоновый цвет, а вот если bacground вынести и сделать так bg.background работает отлично, как справиться?

"use strict"

var button = document.querySelector("a");
var result = document.querySelector("div");
var bg = result.style.background;

button.addEventListener("click", function () {
    if (bg != "red") bg = "red";
    else bg = "gold";
});
  • Вопрос задан
  • 140 просмотров
Решения вопроса 2
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
А вы напишите так:
var bg = result.style.background;
console.log(typeof bg);

И все сразу станет ясно )))
Ответ написан
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
var bg = result.style.background; -, в переменной находится значение свойства. простая строка, ни к чему не привязанная. Поменяете ее - ничего не изменится кроме это строки
var bg = result.style; в переменной лежит ссылка объект style привязанный к dom элементу. Меняете любое свойство - элемент меняется.

При присваивании переменной простого типа (string, number, bool) - в переменную копируется значение.
При присваивании переменной объекта - в переменную копируется ссылка на этот объект.

Все это подробно и доходчиво расписано в любом учебнике по javascript в первых же главах.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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