Inheritance
Script objects may be linked into a chain of inheritance . If one script object inherits from another, the second is said to be the parent of the first. If a message is sent to a script object and it doesn’t know how to obey it, the message is passed along to its parent to see whether it can obey it. A message here is simply an attempt to access any top-level entity.
To link two script objects
explicitly into a chain of inheritance, initialize the
parent
property of one to
point to the other.
Tip
The parent
property may be set only through
initialization. You cannot use copy
or
set
to set it.
In this example, we explicitly arrange two script objects,
mommy
and baby
, into an
inheritance chain (by initializing
baby
’s parent
property). We can then tell baby
to execute a
handler that it doesn’t have, but which
mommy
does have. Here we go:
script mommy
on talk( )
display dialog "How do you do?"
end talk
end script
script baby
property parent : mommy
end script
baby's talk( ) -- How do you do?
In that example, we told the child from outside to execute a handler that it doesn’t have but the parent does. The child can also tell itself to execute such a handler:
script mommy
on talk( )
display dialog "How do you do?"
end talk
end script
script baby
property parent : mommy
talk( )
end script
run baby -- How do you do?
Getting and setting properties works the same way. In this example,
we get and set the value of a property of baby
that baby
doesn’t have:
script mommy property address ...
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.