Если у меня есть массив объектов и через них прописывается атрибут каждому из них, WebStorm предупреждает меня:
Значения, присвоенные примитиву, будут потеряны
Однако при тестировании в консоли я не теряю никаких значений.
Это происходит только тогда, когда цикл внутри функции.
Пример этой ошибки ниже:
let people = [
{
name: 'Foo',
age: 21,
surname: 'FooBar'
},
{
name: 'Bar',
age: 51,
surname: 'FooBar'
}
];
Без оболочки функций:
people.forEach(function (person) {
person.surname = 'Baz'; // No error. Works in console.
});
С помощью обертки функций:
function changeSurname(people) {
people.forEach(function (person) {
person.surname = 'Baz'; // Error warning me that value assigned to primitive will be lost.
});
}
changeSurname(people);
Оба из них производят одинаковый вывод в консоли (фамилия изменена на "baz" ).
Я предполагаю, что это имеет какое-то отношение к ссылке на объект и что указывает person
, но я точно не знаю, что именно.
Почему я вижу эту ошибку?
Какая потенциальная ошибка WebStorm пытается спасти меня?