把Object变量当参数传递的时候,在函数中调用改变Object变量参数的值,发现原始的Object变量也改变了,我知道在JavaScript中Object数据类型是引用类型,变量只是指向相应的内存。
用没有解决方案让Object变量像JavaScript中的基本数据类型一样使用局部变量,值改变时不改变原始的变量。
把Object变量当参数传递的时候,在函数中调用改变Object变量参数的值,发现原始的Object变量也改变了,我知道在JavaScript中Object数据类型是引用类型,变量只是指向相应的内存。
用没有解决方案让Object变量像JavaScript中的基本数据类型一样使用局部变量,值改变时不改变原始的变量。
我猜你要的应该是获得纯粹的值而非引用。在传统的做法里面可以deepcopy,例如遍历赋给新的变量再组合,或者转成字符串模板在解析。但是ES6带来了更好的方法。
destructuring,翻译为解构。
你应该对ES6的这种语法很熟悉:
const {a, b} = require("module")
这就是解构赋值。
实际上是一个提取数据的过程。详见MDN
10 回答11.6k 阅读
2 回答3.1k 阅读✓ 已解决
3 回答2.7k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
3 回答785 阅读✓ 已解决