解説(Note)

 ハンドラと属性を一まとめにしてパッケージしたものを、スクリプトオブジェクトと言う。
 いくつかのハンドラと、レコードを合成したものが、スクリプトオブジェクトであると理解してもいいだろう。

Handler* n + Record = ScriptObject

より深い情報

 スクリプトオブジェクトと言う名前だが、その実、値の一種であるので、変数に代入可能である。また、load script命令を使い外部から読み込むこともできるので、非常に柔軟な処理が可能になっている。

 全てのAppleScriptのスクリプトは暗黙のon script〜end scriptの間にあると考えてよく、スクリプトオブジェクトとして定義されている。

 on script〜end scriptの間にあるスクリプトは暗黙のrunハンドラの中にあるので、「tell スクリプトオブジェクト名 to run」「run of スクリプトオブジェクト名」「run スクリプトオブジェクト名」等で実行される。
 さらにスクリプトオブジェクトにrun以外のハンドラや属性を設定していくと、スクリプトの中にアプリケーション(オブジェクト)を持っている感覚で使え、分かりやすく管理できる。


ハンドラとの類似点
 一連の処理をまとめたもの。
ハンドラとの相違点
 属性を持ちハンドラを中に含む。
 属性やハンドラなどの特徴を継承することで、類似のものを作る事ができる。
 外部から読み込む事ができる。

オブジェクトとの類似点
 属性とハンドラをまとめてパッケージ化したもの。
オブジェクトとの相違点
 属性を変更した場合に、属性の変更以外の処理が行われない。
 値なので、変数に代入可能。