【问题标题】:Don't change the main object when adding a variable to it in JavaScript [duplicate]在 JavaScript 中向主对象添加变量时不要更改主对象 [重复]
【发布时间】:2015-11-10 14:22:00
【问题描述】:

我需要使用一个全局声明的变量,但是修改它以使用一个函数:

var example = {
    selected: '0',
    list: {
        1: {
            value: '1',
            name: "example 1"
        },
        2: {
            value: '2',
            name: "example 2"
        },
        3: {
            value: '3',
            name: "example 3"
        }
    }
};

window.load(function () {
    var example2 = example;
    example2.info = "newinfo";
    // Use example 2
})

问题是,在那之后,如果我使用 console.log(example),它包含绝对不需要的“info”变量。我什至不明白为什么会有它,我特意定义了一个新变量来避免这种情况。

【问题讨论】:

标签: javascript


【解决方案1】:

单个赋值保留对原始对象的引用。因此,任何更改都会反映到原始对象。

只需使用JSON.stringifyJSON.parse 作为副本。

var example2 = JSON.parse(JSON.stringify(example));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-15
    • 1970-01-01
    • 2019-01-30
    • 2021-07-08
    • 1970-01-01
    • 1970-01-01
    • 2012-09-21
    • 2011-08-29
    相关资源
    最近更新 更多