javascript - 防止在javascript中修改对象和数组

标签 javascript parameter-passing pass-by-reference

如你所知,在 javascript 中对象和数组是通过引用发送的,如果我们得到这样的东西:

const obj=[{room:5},{room:35},{room:25},{room:15}];

static test(obj)
  {
    for (let i=0;i<obj.length;i++)
    {
      obj[i].room++;
    }
    return obj;
  }
return {ok:true,D:obj,R:this.test(obj)};

然后第一个对象值会在调用测试后发生变化,问题是如何防止通过引用传递对象及其修改!??!

最佳答案

您可以使用对象或数组的副本:

对象

const copy = JSON.parse(JSON.stringify(obj))

数组

const copy = array.slice(0)

关于javascript - 防止在javascript中修改对象和数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54985352/

相关文章:

javascript - Node.js 的 Hello World 示例中的函数参数

C++ 11 你能在不同的线程中通过引用安全地传递和访问 std::atomics

通过引用调用、const 正确性和对引用结构的读写访问 - 未定义的行为

javascript - Jquery Mobile - $(document).ready 不触发

java - JavaScript 中的 POST 请求

javascript - Safari 4.0.4 中的意外 setTimeout 行为

javascript - 有没有办法记住从参数传递的函数 - (useCallback) exhaustive-deps

javascript - d3.js:帮助理解回调函数的参数

c# - 按值传递结构

javascript - 如何在日期选择器上添加另一个功能