Kod w Twoim przypadku możesz skrócić przenosząc powtarzające się fragmenty do funkcji, a niektóre z nich sparametryzować.
Przykład:
function colorIt(colors) {
document.body.style.color = colors.bodyColor;
document.body.style.backgroundColor = colors.bodyBackgroundColor;
document.getElementById("przycisk").style.color = colors.btnColor;
document.getElementById("przycisk").style.backgroundColor = colors.btnBackgroundColor;
}
function setValueOnPage(value) {
document.getElementById("test").innerHTML = "Wartość w pamięci " + value;
}
function getStoreValueFromStorage() {
return sessionStorage.getItem("store");
}
function setStoreValueToStorage(value) {
sessionStorage.setItem("store", value);
}
//zmiana kontrastu na klik
function kontrast() {
var spr = getStoreValueFromStorage();
if (spr == 0) {
colorIt({
bodyColor: 'yellow',
bodyBackgroundColor: 'black',
btnColor: 'black',
btnBackgroundColor: 'white'
});
setStoreValueToStorage('1');
} else {
colorIt({
bodyColor: 'black',
bodyBackgroundColor: 'white',
btnColor: 'yellow',
btnBackgroundColor: 'black'
});
setStoreValueToStorage('0');
}
var wartosc = getStoreValueFromStorage(); //wyswietlanie wartosci w h1
setValueOnPage(wartosc); //wyswietlanie wartosci w h1
}
//zmiana kontrastu na odswiezenie strony
function kontrast2() {
var spr = getStoreValueFromStorage();
if (spr == 1) {
colorIt({
bodyColor: 'yellow',
bodyBackgroundColor: 'black',
btnColor: 'black',
btnBackgroundColor: 'white'
});
} else {
colorIt({
bodyColor: 'black',
bodyBackgroundColor: 'white',
btnColor: 'yellow',
btnBackgroundColor: 'black'
});
}
var wartosc = getStoreValueFromStorage();
setValueOnPage(wartosc);
}
//sprawdzanie czy jest juz zapis Storage-jesli nie to go tworzy
function zapis() {
var data = getStoreValueFromStorage();
data ? kontrast2() : setStoreValueToStorage('0');
}
W funkcji zapis() możesz zastosować ternary operator, aby skrócić składnię if..else.
Dlaczego czasami dwa razy pobierasz wartość store z sessionStorage przypisując ją do zmiennej wartosc, przy czym korzystasz z niej dopiero za drugim razem?