我想在
JavaScript中使用面向对象编程技术但我无法从另一个类的一个类访问方法.怎么能这样呢?
class one{ write(){ console.log("Yes! I did!"); } } class two{ var object=new one(); tryingMethod(){ object.write(); } }
我收到以下错误:
Uncaught SyntaxError: Unexpected identifier –>> for
var object=new one();
解决方法
您的语法不合法.控制台中应该出现错误,显示哪行代码不正确.
如果它是静态方法(不使用任何实例数据),则将其声明为静态方法,您可以直接调用它.
如果它是一个实例方法,那么通常会创建一个类型为1的对象,然后在该对象上调用该方法(通常在构造函数中).
要使方法静态(在特定情况下似乎没问题):
class One { static write(){ console.log("Yes! I did!"); } } class Two { tryingMethod(){ One.write(); } }
对于非静态情况,您没有正确的语法.看来你想在一个构造函数中创建One对象的实例,如下所示:
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();
注意:我还遵循一个常见的Javascript约定,即使用以类或构造函数名称的大写字母开头的标识符,例如One而不是One.