on | to 識別子 : 変数1 [識別子 : 変数1...]
	[global 変数2 [, 変数2...]]
	[local 変数3 [, 変数3...]]
	[]
end [識別子 : [識別子 :...]

引数(Parameters)

識別子引数のラベル
変数1命令の引数を受け取る変数(仮引数)
変数2大域変数
変数3局所変数
AppleScriptの任意の文

解説(Note)

 Objective-C風に、「:」区切りの引数渡しのハンドラを作る。
 ハンドラの設定方法には、他に引数を位置で渡すタイプ引数をラベルで渡すタイプがある。
 詳しくは、利用者定義命令の説明handler値を参照してほしい。

 この形式のハンドラは、Objective-Cとの橋渡し(bridge)のために使われるもので、他の用途で使う意味はほぼない。
 Objective-Cフレームワークを使うにはuse framework文を使うが、Objective-C(やSwift)で使われるAPIについては、本用語辞書の範囲外なので、詳細はApple他が公開している書類を参照してほしい。

 この定義方法の実態はアンダースコア区切りの識別子を持つ引数を位置で渡すタイプのハンドラである。
 そのため、ラベルのように見えるからといって、呼び出しの際に引数の位置を入れ替えることはできない。
 次の二つの定義は同じ意味。

on ValueA:v1 ValueB:v2
on ValueA_ValueB_(v1, v2)

 また、呼び出しの際に気をつけることとして、ハンドラの親オブジェクトを明示的に指定する必要があることも注意してほしい。
 用例1だとitsはなくても良さそうだが、実際は必須である。

用例(Example)

  1. its ValueA:10 ValueB:"20"
    
    on ValueA:v1 ValueB:v2
    	return v1 & v2
    end ValueA:ValueB:
※1 結果ウィンドウでResultを見て下さい。