OOP-如何在内部合理地调用类方法

OOP-如何在内部合理地调用类方法,oop,methods,ocaml,reason,Oop,Methods,Ocaml,Reason,我有一个testFactory类。其目的是能够传入工厂,然后控制台输出结果以进行演示。现在,当尝试在测试方法中调用createProductA时,编译器将抱怨createProductA未绑定(未绑定值createProductA) 在类内部调用方法的正确语法是什么 class testFactory (factory: abstractFactory) => { as _; pub createProductA => factory#createProductA; pu

我有一个
testFactory
类。其目的是能够传入工厂,然后控制台输出结果以进行演示。现在,当尝试在测试方法中调用
createProductA
时,编译器将抱怨createProductA未绑定(
未绑定值createProductA

在类内部调用方法的正确语法是什么

class testFactory (factory: abstractFactory) => {
  as _;
  pub createProductA => factory#createProductA;
  pub createProductB => factory#createProductB;

  pub test () => {
    Js.log createProductA;
    Js.log createProductB;
  }
};

这是
作为u类定义的一部分就会出现

createProductA
createProductB
是方法,而不是函数,因此需要对对象调用它们。Reason/OCaml不会自动将当前对象绑定到像
this
self
这样的名称上,而是让您自己去做,这正是
一样所做的,
\uu
通常的意思是“我不在乎这个”。因此,如果您将
更改为到例如作为自身的
您将能够在其他地方引用
self
作为当前对象

试试这个:

class testFactory (factory: abstractFactory) => {
  as self;
  pub createProductA => factory#createProductA;
  pub createProductB => factory#createProductB;

  pub test () => {
    Js.log self#createProductA;
    Js.log self#createProductB;
  }
};

我不知道我以前是否提到过这一点,但你可能想看看。你可以用它来解释OCaml代码。我确实读过那一章,而且我一直在重读(特别是在地铁上),并尝试使用u以及#。可能是在赶时间的时候,我忽略了一些事情。我一如既往地感谢你。