Me
The keyword me
represents the current script—the script or script object that is running the code where the keyword me
appears. (In situations where you would say of me
after a word, you may say my
before that word instead.) Thus:
script myScript me -- «script myScript» end script run myScript me -- «script», the anonymous top-level script parent of me --«script AppleScript»
See also "The Implicit Parent Chain" in Chapter 8.
We saw the keyword me
used earlier (Chapter 8) as a way to force AppleScript to interpret a term as belonging to the current script object, so that it will use the inheritance chain.
When targeting an application in a tell block, me
can be helpful as a specifying that the target should be your script instead. For example, this doesn't work:
on reverseString(s)
set 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: Finder got an error: Can't continue reverseString
end tell
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. The Finder doesn't know what to do with this message. The target for reverseString
, and only reverseString
, needs to be the current script. This is a job for me
(a "can't continue" error usually is):
set name of folder 1 to my reverseString(get name of folder 1)
But me
won't also resolve a terminology clash
between ...
Get AppleScript: The Definitive Guide, 2nd Edition 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.