• 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的变化而变化了
  • 相关阅读:
    整数反转
    两数之和
    设计模式-备忘录模式
    设计模式-迭代器模式
    设计模式-中介者模式
    设计模式-观察者模式
    C# OpenFileDialog和SaveFileDialog的常见用法
    SQL数据库表结构的修改(sql2005)
    C# 时间格式处理
    C# 集合类(四)
  • 原文地址:https://www.cnblogs.com/cqy1125/p/12674324.html
Copyright © 2020-2023  润新知