Вы сохраняете ordiConfigure
как строку JSON в localStorage
. Проблема состоит в том, что, если что-то строковое в виде JSON, оно не имеет связи с тем, из чего оно произошло (например, из класса с пользовательским методом toString
). После повторного анализа JSON это просто простой объект Javascript, состоящий из пар ключ-значение и ничего более.
Если вы хотите иметь возможность вызывать свой пользовательский метод toString
после извлечения элемента из localStorage
, ваш метод toString
должен быть доступен в то время, когда вы анализируете JSON обратно в объект. Например:
function ordinateurToString(ordinateur) {
var caracteristiques = "<ul>";
for (var proprieteOrdinateur in ordinateur){
if(typeof(ordinateur[proprieteOrdinateur]) !== "function")
caracteristiques += "<li>" + proprieteOrdinateur + " : " + ordinateur[proprieteOrdinateur] + "</li><br/>";
}
caracteristiques += "</ul>";
return caracteristiques;
}
const ordinateur = JSON.parse(localStorage.getItem("ordinateur"));
document.querySelector('div').innerHTML = ordinateurToString(ordinateur);
Другим вариантом является преобразование объекта в строку HTML перед сохранением в localStorage.
(Примечание: document.getElementsByTagName('div')[0]
не нужно. Лучше использовать querySelector
, который выбирает отдельный элемент, чем использовать метод, который возвращает коллекцию, а затем выбирает первый элемент в этой коллекции)