gpt4 book ai didi

javascript - 多个类之间可以共享数据吗?

转载 作者:行者123 更新时间:2023-12-02 22:49:07 25 4
gpt4 key购买 nike

我想知道是否可以更改一个类的一个实例中的数据,从而导致 OOP 方法中第二个类中的数据发生更改?

我的意思是

class Data {
constructor() { this.data = 5 }
}

class First extends Data {
constructor() { super() }
changeData(_data) { this.data = _data }
}

class Second extends Data {
constructor() { super() }
changeData(_data) { this.data = _data }
}


const first = new First()
const second = new Second()

first.changeData(7)
console.log(first.data)
console.log(second.data) // I want 7 here as well

或者只是在 OOP 中的类之间共享数据的任何解决方案?

最佳答案

可以通过添加手动指定用于存储其成员的对象的功能来解决此问题。

在此示例中,firstsecond 具有链接存储,thirdfourth 具有链接存储,与用于第一个第二个

class Data {
constructor(storage) {
this.storage = storage;
this.storage.data = 5
}
}

class First extends Data {
constructor(storage) { super(storage) }
changeData(_data) { this.storage.data = _data }
}

class Second extends Data {
constructor(storage) { super(storage) }
changeData(_data) { this.storage.data = _data }
}


storage = {};
const first = new First(storage)
const second = new Second(storage)

storageB = {};
const third = new First(storageB)
const fourth = new Second(storageB)

first.changeData(7)
third.changeData(21)

console.log(first.storage.data) // 7
console.log(second.storage.data) // 7
console.log(third.storage.data) // 21
console.log(fourth.storage.data) // 21

关于javascript - 多个类之间可以共享数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58260072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com