Розробка сайтів на Flash та ООП ActionScript
Ну і що це означає для розробника сайту на Flash? Це означає, що ActionScript не має спеціального ключового слова для визначення класів, але дозволяє створювати спеціальні об'єкти, які називаються прототипами, які поводяться точно як класи. Якщо цю ідею застосувати до реальності, мови на основі прототипів створювали б нових кішок клонуванням, а мови на основі класів – слідуючи набору вказівок, як побудувати сайт.
Факт, що ActionScript є мовою на основі прототипів, може викликати певну плутанину, особливо коли ви створюєте власні класи. Це тому, що людині недосвідченій у розробці та програмуванні сайтів метод конструктора вашого класу здасться звичайною старою функцією. Насправді, це і є звичайна стара функція; ви просто "погоджуєтеся" використовувати її як конструктор.
Зверніть увагу на використання цього ключового слова. Спеціальне ключове з цим посилається на об'єкт, всередині програми сайту, якого воно знаходиться. Таким чином, сказавши: this.site = site; всі об'єкти, породжені від прототипу Site, мають властивість site з моменту створення.
У створюють сайти програмістів Flash досить поширена практика робити великою букву тільки в класів (отже, і в конструкторів), а решта починати з малої. Це неофіційний стандарт, але більшість програмістів його дотримуються, оскільки це трохи полегшує знаходження класів.
Зауважте, що ім'я функції починається з великої літери, функція є конструктором, так що ви тепер можете створювати не екземпляри класу Site одним рядком:
І звичайно, якби у вас був інший сайт, ви могли б створити інший об'єкт:
А тепер трохи інформації, яка спочатку може видатися складною: простовизначивши ActionScript метод конструктора Site, ви також створили новий об'єкт з ім'ям Site. Пам'ятайте, що ActionScript – мова на основі прототипів, а об'єкт прототипу є об'єктом, який діє як клас.
На відміну від інших мов ООП (таких, як С++ та Java), об'єкти ActionScript чудово модифікуються в будь-який час. Тобто можна змінити майже будь-який об'єкт, включаючи об'єкти прототипів, у будь-який час за вашим бажанням. Вам доведеться займатися такими змінами, створення об'єкта прототипу, але, взагалі кажучи, маніпуляції з об'єктом безпосередньо вважаються поганою практикою з об'єктно-орієнтованої точки зору.