我想知道是否可以在一个类的一个实例中更改数据,从而导致在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中的类之间共享数据的任何解决方案?
答案 0 :(得分:1)
如果您使用的是类,请检出静态标志(在实例之间共享内存),如果您可以运行,则只需跟踪作用域
答案 1 :(得分:0)
更新 我想我已经找到了解决问题的方法
const data = {
name: 'John'
}
class First {
constructor(data) { this.data = data }
changeData() { this.data.age = 12 }
}
class Second {
constructor(data) { this.data = data }
}
const first = new First(data)
const second = new Second(data)
console.log(first.data)
console.log(second.data)
first.changeData()
console.log(first.data)
console.log(second.data)
console.log(data)
答案 2 :(得分:0)
可以通过添加手动指定用于存储其成员的对象的功能来解决此问题。
在此示例中,first
和second
具有链接存储,third
和fourth
具有链接存储,这与first
和{{1 }}。
second