55 lines
1.6 KiB
Text
55 lines
1.6 KiB
Text
class::Method
|
|
categories::Core>Kernel
|
|
summary:: Code that implements an operation upon instances of a Class.
|
|
related:: Classes/Class
|
|
|
|
description::
|
|
A Method is code that is a part of the set of operations upon instances of a link::Classes/Class::.
|
|
|
|
subsection:: Related Keywords
|
|
|
|
method:: thisMethod
|
|
|
|
The global pseudo-variable code::thisMethod:: always evaluates to the enclosing Method in a class definition, much like code::thisFunction::.
|
|
When executed outside that context, it returns link::Classes/Interpreter#-functionCompileContext::, the method within which all interpreted code executes.
|
|
|
|
code::
|
|
// if the following code were compiled as part of the class library:
|
|
SomeClass {
|
|
methodThatPostsItself {
|
|
thisMethod.postln;
|
|
}
|
|
}
|
|
|
|
// then running this would post
|
|
// "SomeClass:methodThatPostsItself"
|
|
a = SomeClass.new;
|
|
a.methodThatPostsItself;
|
|
::
|
|
|
|
code::thisMethod:: is frequently used to pass information to error-throwing methods. For example, the implementation of code::Nil.new:: is:
|
|
|
|
code::
|
|
*new { ^this.shouldNotImplement(thisMethod) }
|
|
::
|
|
|
|
See also: link::Classes/Function#.thisFunction#thisFunction::.
|
|
|
|
instanceMethods::
|
|
|
|
method::ownerClass
|
|
returns::
|
|
The link::Classes/Class:: for which the method is part of the implementation.
|
|
|
|
method::name
|
|
returns::
|
|
A link::Classes/Symbol:: which is the name of the Method.
|
|
|
|
method::primitiveName
|
|
returns::
|
|
A link::Classes/Symbol:: which contains the name of the primitive function that implements the Method, if there is one.
|
|
|
|
method:: filenameSymbol
|
|
returns::
|
|
A link::Classes/Symbol:: which is the full path of the source file that this method is defined in.
|
|
|