Me
The keyword
me
represents the current
script—the script or script object that is running the code
where the keyword me
appears. Thus:
script myScript me -- «script myScript» end script run myScript me -- «script» , the anonymous top-level script parent of me -- «script AppleScript»
See also Section 9.7.3. In situations where you would
say of me
after a word, you may say
my
before that word instead.
We saw the keyword
me
used earlier (Section 9.7) as
a way to force AppleScript to attempt to interpret a term as
belonging to the current script object, so that it will use the
inheritance chain.
The keyword me
can be useful in a
tell
block, to specify the current script as the target instead of the
tell block’s target. For example, this
doesn’t work:
on reverseString(s)
set the text item delimiters to ""
return (reverse of characters of s) as string
end reverseString
tell application "Finder"
set name of folder 1 to reverseString(get name of folder 1) -- error
end tell
The problem is that when we come to the handler call
reverseString( )
in the next-to-last line, the
target is the Finder. So AppleScript passes it along to the Finder,
which doesn’t know what to do with it. The target
for reverseString
needs to be
me
, even though the target of everything else in
that line should be the Finder. This is just the kind of situation
where me
comes in handy:
set name of folder 1 to my reverseString(get name of folder 1)
But me
won’t also resolve a
terminology
clash
between a name defined by ...
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.