A.style.display: значение, присвоенное примитиву, будет потеряно
Рассмотрим этот фрагмент кода JavaScript:
var a = document.createElement("a");
a.style.display = "none";
IntelliJ IDEA 2016.2 выделяет a.style.display
и дает этот намек:
Значение, присвоенное примитиву, будет потеряно
Проверяет неправильное использование оберток для примитивных типов JavaScript. Кроме того, будет выдано предупреждение, когда свойство примитивного типа будет изменено, поскольку присвоенное значение будет потеряно
![IntelliJ IDEA hint]()
CSSStyleDeclaration
не является примитивным типом, поэтому присваивание display
не будет потеряно.
String
- это тип оболочки. Как я использую это (неправильно)?
В Chrome и Edge этот код отлично работает. Какая сделка?
Ответы
Ответ 1
В коде нет ничего неправильного, вывод типа IntelliJ немного запутан (этот аспект JavaScript особенно запутан).
Его linter видит строку и предполагает, что вы попробуете что-то вроде этого:
var primitive = "september";
primitive.vowels = 3;
primitive.vowels;
// => undefined
Это приведет к "потерянному" значению.
Чтобы понять эту странную часть JavaScript, я рекомендую Ангус Кроллу отличную углубленную статью здесь.