同義語(Synonym)

プロパティ、フィールド

解説(Note)

 属性はオブジェクトや値の持つ性質を表していて、それらに貼られている札のようなものといえる。
 例えば、ファイルの名前やサイズ、ウィンドウの位置などが属性である。
 属性を指定するための識別子をラベル(label)とも言う。

 値を変更すると同時に、あたかも属性の値を引数とした命令が実行されるような効果がある。例えば位置を表す属性(position)の値を変更すると、オブジェクトが移動するような効果である。

 変数と命令を合成したものが、属性であると理解していいだろう。

アイコン + アイコン* 2 = アイコン

より深い情報

 例えばprop xという属性があったとすると、内部的には
「値を書き込む(write)命令」

set prop x to 引数

と「値を読み出す(read)命令」

prop x

という2つの命令が用意されていると言える。[r/o]の属性の場合、値を読み出す(read)命令だけが用意されていると理解できる。
 要は、set the clipboard to命令とthe clipboard命令によく似た作りである。

 いろいろな用語と似ているので、混乱しないようにしてほしい。
 スクリプトオブジェクトの持つスクリプト属性は、以下の性質にあてはまらず、ほぼ変数と同じ性質を持っているので注意すること。
 同様にレコードの持つ属性も、以下の性質とは異なる。
 以下の性質は、アプリケーションオブジェクトの持つ属性の性質である。


要素との類似点
 オブジェクトや値に含まれ、xxx of クラスの形で指定される。
要素との相違点
 オブジェクトや値に固有のものなので、オブジェクトや値から削除できない。
 属性参照で参照される。そのため、他の番号やフィルタによる参照はできない。

変数との類似点
 set命令で値を代入したり、値を読み出したりできる。
 必ず値を一つ持つ。
変数との相違点
 オブジェクトや値に固有のものなので、オブジェクトや値と一緒にしか存在できない。
 属性の種類によっては、読み出ししかできなかったり(read only [r/o])、代入しができなかったり(write only [w/o])する。
 値を代入する事により、属性に対応した処理が行われる場合が多い。また、スクリプトで代入を行わなくても値が変わる場合もある。
 属性に代入できる値の型(クラス)が決まっている。変数は、どのような値でも代入できる。

命令との類似点
 値を渡して、なんらかの処理を行わせる事ができる。
 オブジェクトや値ごとに固有のものが存在する。
命令との相違点
 必ず値を持ち、渡す値と返す値は同じ意味を持っている。
 値を渡す時はset命令を使って渡す。
 値は一つしか渡せない。
 そもそも「get 属性」と「set 属性 to」という頻出する二つの命令をまとめたものが属性であるので、似ていて当然である。