如何从另一个类的类访问方法?

Ham*_*han 8 javascript oop

我想在JavaScript中使用面向对象编程技术但我无法从另一个类的一个类访问方法.怎么能这样呢?

class one{

  write(){
    console.log("Yes! I did!");
  }
}

class two{
   var object=new one();

   tryingMethod(){
   object.write();
   }
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

未捕获的SyntaxError:意外的标识符 - >> for var object=new one();

jfr*_*d00 9

您的语法不合法.控制台中应该出现错误,显示哪行代码不正确.

如果它是静态方法(不使用任何实例数据),则将其声明为静态方法,您可以直接调用它.

如果它是一个实例方法,那么通常会创建一个类型的对象,one然后在该对象上调用该方法(通常在构造函数中).

要使方法静态(在特定情况下似乎没问题):

class One {
  static write(){
    console.log("Yes! I did!");
  }
}

class Two {
   tryingMethod(){
     One.write();
   }
}
Run Code Online (Sandbox Code Playgroud)

对于非静态情况,您没有正确的语法.看来你想One在构造函数中创建对象的实例,Two如下所示:

class One {
  write(){
    console.log("Yes! I did!");
  }
}

class Two {
   constructor() {
       this.one = new One();
   }

   tryingMethod(){
     this.one.write();
   }
}

var x = new Two();
x.tryingMethod();
Run Code Online (Sandbox Code Playgroud)

注意:我还遵循一个常见的Javascript约定,即使用以类或构造函数名称的大写字母开头的标识符,One而不是one.