関数
関数の概念
関数は、内部的な構造としてはクラスと同一です。
クラスとの違いは、実体の作成されるタイミングと、コンストラクタが実行されるタイミングのみです。
関数: 定義と同時に実体が作られ、呼び出し時にコンストラクタが実行される。
クラス: 定義は宣言のみのため、new で明示して実体を作成する。作成時にコンストラクタが実行される。
言い換えると、
functionで宣言した場合は、クラスの構造を定義し実体を作成したこととなり、
classで宣言した場合は、クラスの構造を定義したこととなる。
ということです。
構造上クラスと同一なので、もちろんデストラクタも持ちますし(省略可能)、内部に関数やクラスも持つことができます。
継承も可能です。
関数の宣言
functionで定義します。
以下の四通りの記述が出来ます。
function {
function 関数名 {
function 関数名() {
function 関数名(引数, 引数) {
一番最初の記述方法は、無名関数になるため、単独での利用は無意味ですので(呼び出し方法がない)、
変数に代入する形を取ることになります。
例:
val_func = function { # 関数の実体をval_funcに代入 print("call func\n"); # 関数の定義部はイベントハンドラではありません } val_func(); # 関数呼び出し
