関数

関数の概念

関数は、内部的な構造としてはクラスと同一です。
クラスとの違いは、実体の作成されるタイミングと、コンストラクタが実行されるタイミングのみです。

関数: 定義と同時に実体が作られ、呼び出し時にコンストラクタが実行される。
クラス: 定義は宣言のみのため、new で明示して実体を作成する。作成時にコンストラクタが実行される。
言い換えると、
functionで宣言した場合は、クラスの構造を定義し実体を作成したこととなり、
classで宣言した場合は、クラスの構造を定義したこととなる。
ということです。
構造上クラスと同一なので、もちろんデストラクタも持ちますし(省略可能)、内部に関数やクラスも持つことができます。
継承も可能です。


関数の宣言

functionで定義します。
以下の四通りの記述が出来ます。

function  {
function 関数名 {
function 関数名() {
function 関数名(引数, 引数) {

一番最初の記述方法は、無名関数になるため、単独での利用は無意味ですので(呼び出し方法がない)、
変数に代入する形を取ることになります。
例:

val_func = function {        # 関数の実体をval_funcに代入
    print("call func\n");    # 関数の定義部はイベントハンドラではありません
}
val_func();                  # 関数呼び出し