最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

是否可以在多个类别之间共享数据?

运维笔记admin16浏览0评论

是否可以在多个类别之间共享数据?

是否可以在多个类别之间共享数据?

我想知道是否有可能在一个类的一个实例中更改数据,以便它会导致在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具有链接存储,这与firstsecond所使用的存储区不同。

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
发布评论

评论列表(0)

  1. 暂无评论