Properties and Elements

Two objects may stand in a relationship where one is an attribute of the other. It is this relationship of attribution that is specified by the chain of ofs and tells. Attributes are defined in terms of classes. (The term “attribute” is of my own devising, because the official AppleScript documentation lacks any comprehensive term for “property or element.”)

For example, a list has a length attribute and an item attribute—these are facts about any list because they are facts about the list class. That is what makes this code legal:

set L to {"Mannie", "Moe", "Jack"}
length of L -- 3
item 1 of L -- "Mannie"

Recall this code from Chapter 3:

tell application "FrameMaker 7.0"
        tell document "extra:applescriptBook:ch02places.fm"
                tell anchored frame 43
                        get inset file of inset 1
                end tell
        end tell
end tell

That code works because, in FrameMaker, the application has a document attribute, a document has an anchored frame attribute, an anchored frame has an inset attribute, and an inset has an inset file attribute. As we saw in Chapter 3, working out the chain of attributes so as to refer successfully to a desired object is a major part of working with AppleScript. An application’s dictionary is supposed to help you with this, though it often falls short (Chapter 19). AppleScript’s own dictionary is not typically visible, so this book describes the attributes of the built-in datatypes (Chapter 13).

An attribute is either a property or an element. A property is an attribute ...

Get AppleScript: The Definitive Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.