zoukankan      html  css  js  c++  java
  • javaScript在实际开发中,堆栈的注意事项

    今天我遇到了一个问题,当请求接口后得到一个数组,这个数组在后面会用于比较,但也会改变,所以这个数组同时赋值给两个变量,

    本来想着当在其他方法中改变其中一个变量,

    在后来可以将两个变量用于比较

    但是我发现其中一个改变,另一个也跟着改变。

    后来发现,javascript中引用类型存在堆中,基本类型存在栈中

    进入页面请求一个数据res.data
    this.a = res.data
    this.b = res.data
    在另一个方法中我对a重新赋值了
    this.a = 新的数组
    在另一个方法中我要用到a和b做比较
    //当比较的时候我发现不对啊
    //this.b跟着this.a发生了改变

    解决办法:

    将其中一个转成基本类型,当用到的时候在转回来

    进入页面请求一个数据res.data
    this.a = res.data
    this.b = res.data.join()//数组转成字符串
    在另一个方法中我对a重新赋值了
    this.a = 1
    在另一个方法中我要用到a和b做比较
    console.log(this.a)
    console.log(this.b)
    this.b = this.b.split(",")//字符串转回数组,得到新的数组
    这样this.b就不会跟着this.a的变化而变化了
  • 相关阅读:
    java_JDBC(3)
    java_JDBC(2)
    java_JDBC(1)
    seq语句随笔
    bzoj3159: 决战
    bzoj3905: Square
    bzoj3864: Hero meet devil
    有上下界的网络流问题
    uva12538
    bzoj3280: 小R的烦恼
  • 原文地址:https://www.cnblogs.com/cqy1125/p/12674324.html
Copyright © 2011-2022 走看看