相关疑难解决方法(0)

分配给基元的值将丢失

如果我有一个对象数组,并循环遍历它们为每个对象分配一个属性值,WebStorm警告我:

分配给基元的值将丢失

但是,在控制台中进行测试时,我并没有"丢失"任何值.

这只发生在循环在函数内部时.

以下是此错误的示例:

let people = [
    {
        name: 'Foo',
        age: 21,
        surname: 'FooBar'
    },

    {
        name: 'Bar',
        age: 51,
        surname: 'FooBar'
    }
];
Run Code Online (Sandbox Code Playgroud)

没有函数包装器:

people.forEach(function (person) {
    person.surname = 'Baz'; // No error. Works in console.
});
Run Code Online (Sandbox Code Playgroud)

使用函数包装器:

function changeSurname(people) {
    people.forEach(function (person) {
        person.surname = 'Baz'; // Error warning me that value assigned to primitive will be lost.
    });
}

changeSurname(people);
Run Code Online (Sandbox Code Playgroud)

这两个都在控制台中产生相同的输出(姓氏改为'baz').

我认为这与对象引用和person指向的内容有关,但我不确定究竟是什么.

为什么我看到这个错误?

WebStorm试图拯救我的潜在错误是什么?

javascript webstorm

29
推荐指数
2
解决办法
1万
查看次数

标签 统计

javascript ×1

webstorm ×1