一个对象的属性也是一个对象,怎么进行解耦?

发布于 2022-09-12 13:41:47 字数 448 浏览 35 评论 0

class Wheel{
  constructor(num) {
   this.num = num;
  }
  num:0,
  roll(){
   console.log('wheel is rolling!');
  }
}

class Car{
    constructor(engine, wheel) {
        this.engine = engine;
        this.wheel = wheel;
    }
    engine:0,
    wheel,
}

let wheel = new Wheel(4);
let car = new Car(1, wheel);
car.wheel.roll();

wheel对象是car对象的属性,怎么对car和wheel进行解耦,有时候属性对象的属性又是父对象,例如为wheel添加belong属性,表示所属的car,请问一般怎么进行解耦?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

千纸鹤 2022-09-19 13:41:47

我觉得现在就挺好的,至少没有将Wheel的参数传递给Car构造函数然后在构造函数内实例化。
进一步的,你可以在Wheel类添加方法setCar:

class Wheel{
  constructor(num) {
   this.num = num;
   this.car = null;
  }
  roll(){
   console.log('wheel is rolling!');
  }
  setCar (car) {
    this.car = car
  }
} 
拍不死你 2022-09-19 13:41:47

你要区分类和实例
在一个Car中的wheel是实例对象,这个和类是有区别的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文