访问主类的字段

时间:2018-04-16 00:50:26

标签: javascript oop

我有一个名为Car and Engine的课程。

class Car {
     constructor() {
        this.engine = new Engine();
        this.start = false;
     }

    startCar() {
         // some code
     } 
}

class Engine {
     startEngine() {
          if(start == false) { // Car.start
               startCar() // Car.startCar
          }
     }
}

我想调用startCar方法并从 startEngine 方法访问start字段。有没有其他方法来访问这些领域&没有将这些方法作为参数提供给 Engine 类的方法吗?

1 个答案:

答案 0 :(得分:0)

您可以在Car的构造函数中绑定startEngine()方法:

 constructor() {
    this.engine = new Engine();
    this.start = false;

    this.engine.startEngine = this.engine.startEngine.bind(this);
 }

然后你可以在startEngine方法中使用'this':

class Engine {
     startEngine() {
          if(this.start == false) { // Car.start
               this.start = true;
          }
     }
}

并从汽车的startCar()方法访问引擎的startEngine()方法:

startCar() {
     this.engine.startEngine();
 }

您还可以从startEngine()方法中访问startCar()方法:

class Engine {
     startEngine() {
          if(this.start == false) { // Car.start
               this.startCar();
          }
     }
}