Call an object method: Difference between revisions

Content added Content deleted
No edit summary
imported>Acediast
(→‎{{header|COBOL}}: added params)
Line 238: Line 238:
(. 1 (equals 2)) ; alternative style</syntaxhighlight>
(. 1 (equals 2)) ; alternative style</syntaxhighlight>
=={{header|COBOL}}==
=={{header|COBOL}}==
COBOL has two ways to invoke a method: the <code>INVOKE</code> statement and inline method invocation.
COBOL added object methods in 2002. It has two ways to invoke a method: the <code>INVOKE</code> statement and inline method invocation.
<syntaxhighlight lang="cobol">*> INVOKE
<syntaxhighlight lang="cobol"> *> INVOKE statements.
INVOKE FooClass "someMethod" RETURNING bar *> Factory object
INVOKE my-class "some-method" *> Factory object
USING BY REFERENCE some-parameter
INVOKE foo-instance "anotherMethod" RETURNING bar *> Instance object
RETURNING foo


INVOKE my-instance "another-method" *> Instance object
*> Inline method invocation
USING BY REFERENCE some-parameter
MOVE FooClass::"someMethod" TO bar *> Factory object
RETURNING foo
MOVE foo-instance::"anotherMethod" TO bar *> Instance object</syntaxhighlight>


*> Inline method invocation.
To call factory methods of objects of an unknown type (such as when you may have a subclass of the class wanted), it is necessary to get a reference to the class's factory object by calling the <code>"FactoryObject"</code> method.
MOVE my-class::"some-method"(some-parameter) TO foo
<syntaxhighlight lang="cobol">INVOKE foo-instance "FactoryObject" RETURNING foo-factory
*> Factory object
*> foo-factory can be treated like a normal object reference.
INVOKE foo-factory "someMethod"</syntaxhighlight>


MOVE my-instance::"another-method"(some-parameter) TO foo
*> Instance object</syntaxhighlight>

To call factory methods of objects of an unknown type (such as when you may have a subclass of the class wanted), it is necessary to get a reference to the class's factory object by calling the <code>"FactoryObject"</code> method.
<syntaxhighlight lang="cobol"> INVOKE some-instance "FactoryObject" RETURNING foo-factory
*> foo-factory can be treated like a normal object reference.
INVOKE foo-factory "someMethod"</syntaxhighlight>


=={{header|CoffeeScript}}==
=={{header|CoffeeScript}}==