12.7. Script Objects and Object-Oriented Programming

I mentioned at the start of this chapter that AppleScript supports many of the notions of object-oriented programming. You already know that it has the concepts of classes and objects. But it's not as obvious that AppleScript also supports some fundamental OOP features such as inheritance, instantiation, data encapsulation, and polymorphism.

There's not enough space in this book to teach OOP concepts. As a result, this section is geared for programmers with some OOP background. If you don't have such a background, you should read through this section anyway. Perhaps you'll learn something new!

Script objects provide the foundation for OOP programming in AppleScript because they provide the means for you to create an object that contains its own hidden variables (in OOP parlance instance variables), and to associate a set of handlers (methods) with that object. The script object also encapsulates those handlers, meaning that you can have handlers with the same name inside different script objects. This provides the mechanism for supporting OOP's concept of polymorphism, which I discuss in more detail in the next section.

Before I show you a program that uses OOP concepts, you need to know how to return script objects from handlers and why you might want to do that. The next Try It Out illustrates this concept.

12.7.1.

12.7.1.1. Try It Out: Returning a Script Object from a Handler

The following program shows you how to return ...

Get Beginning AppleScript® 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.