JS变量引用的坑

前言

关于变量的坑,值引用和地址引用。当初没有用心看,这次遇到问题了才解决。那么我在这里mark一下,防止以后忘记了还会出现这种情况。

值引用和地址引用

关于这两种方式,因为在最初步学习基础的时候不是很清楚就跳过了,可能是缺乏动手练习吧。等遇到这种问题才明白。根据我的结论得出以下

  • 【值引用】这个就是将一个变量的值拿来过放到另外一个新的地址中,他们不是同一个地址,所以更改的时候不会影响之前的变量。像字符串、数字这种就是值引用。
  • 【地址引用】这个就是相当于把这个变量拿过来,新的变量地址跟原变量是一样的,所以修改了其他的都改了。就好比你把他儿子打了,他儿子要打你,他爸爸也要打你,他爷爷也要打你一样,因为他们是一家的。像数组、对象就会出现这种。

说的通俗易懂一点,值引用就是我们平常用变量一下,改这个不会改变原变量,而地址引用恰恰相反,一改全改。

如何解决地址引用?

那么如何解决呢?我起初的时候发现是引用的坑了,因为当时对这块不是很了解,百度怎么解决引用,发现的帖子也是很少,而且没效果。所以在此列举多种手段,万一不行请试试。
这里是考虑到的方案,没用过

  • 遍历地址引用的变量,将值赋给新的变量。
  • 如果不是很复杂的数据结构,JSON请使用parse、stringify将最初的变量进行转换,转为字符串在赋给新变量。Array则使用join、split分解在合并,或者克隆。

这里是用到过的方案

  • 将变量放在一个函数中,return出去,用新变量接受。相当于做个一个get函数。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值