问题描述
我在Main中有一个名为myFunction
的函数,并返回一个布尔值:
if(this instanceof MyAgent)
return true;
else;
return false;
此功能在FactoryAgent
的流程块中被调用,它只是检查流过该流程块的代理是否为MyAgent
类型。但是,当我调用此函数时,出现以下错误:
Description: Incompatible conditional operand types Main and FactoryAgent.
直接在流程块的this instanceof MyAgent
字段中输入On enter
即可。如何在this
中的函数中正确引用Main
?
解决方法
这是错误的...关键字“ this”是指您在其中调用函数的代理。
如果main中有一个流程块,则此“指向”是main,如果在代理FactoryAgent中使用它,则“ this”指向FactoryAgent ...这意味着它将始终返回false,因为“ this”永远不是MyAgent的实例
相反,您应该使用局部变量“ agent”并将其全部更改为
if(agent instanceof MyAgent)
return true;
else;
return false;
如果要在任何地方调用此函数,则需要使用一个参数来调用它,该参数是流经该过程的代理。如果它可以是多种类型的代理,则参数将是代理类型,或者可能是对象类型。
如果您不知道函数具有参数的含义,或者您不知道可以使用名为agent的局部变量,我可以解释一下,但这是非常基础的术语,我以为你知道