-
Тепер, коли ви розумієте основи
Javascript, я хочу навчити вас класному
-
способу використання Javascript
-
Щось, що ми називаємо
"об'єктно-орієнтоване програмування"
-
Але спочатку ми повинні зрозуміти, чому
це насправді пригодиться
-
Тому, я склала програму, що є кращою коли
робитимемо її більш об'єктно-орієнтованою
-
Тепер, це досить класна програма, щоб
розпочати. Вгорі у мене є дві змінні, що
-
зберігають прості літерали об'єктів
всередині.
-
Тепер об'єкт літерал є свого роду об'єкт,
про який ми дізналися раніше, що ми
-
створюємо з двома фігурними дужками
-
а потім ми поміщаємо всі ці імена і
значення властивостей, всередину.
-
Отже, у нас є два з цих об'єктів з літерал
значенням, а тоді знизу тут маємо
-
цю функцію drawWinston, що очікує
один аргумент,
-
а потім він відтворює аргумент, малює
картинку, на основі х та у властивостей
-
об'єкту, а потім підпис на основі його
псевдонімів і вікових властивостей.
-
І тепер, нарешті, знизу, ми викликаємо
drawWinston() onTeen та onAdult,
-
І це те, що це робить. Показує його
-
Дуже здорово. Тепер, якщо ми йдемо сюди,
і ми подивимося на ці об'єкти літералів,
-
зверніть увагу на те, що вони дуже похожі.
-
Обидва мають однакові набори властивостей,
і обидва з них можуть бути використані і
-
тією ж функцією drawWinston ().
-
Насправді, знаєте, якщо ви про це думаєте,
вони дійсно описують тип Вінстон, так?
-
І ми можемо думати, це може бути, свого
роду абстрактний тип Вінстона в світі,
-
і кожен Вінстон має той же набір
властивостей, як псевдонім і вік, х та у
-
і тут, те що ми зробили, це ми тільки що
створили 2 примірника Вінстона
-
щоб описати, певного Winston. Так що це
підліток Вінстон, а це дорослий Вінстон.
-
Але вони насправді, вони дійсно дуже схожі
як є багато речей, які подібні про них.
-
Якщо подумати, багато у світ працює так, і
те, що у нас ці абстрактних типи даних,
-
люди, народ
-
і тоді ми всі просто конкретні приклади
з нашими власними властивостями.
-
Тепер ми можемо фактично використовувати
об'єктно-орієнтовані методи в JavaScript,
-
так що ці змінні Вінстон.
-
є лише примірниками об'єкта Вінстон так що
вони знають, що поділяють ці спільні риси.
-
Таким чином, щоб зробити це, спочатку нам
потрібно описати цей абстрактний тип даних
-
Вінстон. І тому, ми зробимо це створюючи
змінну
-
Ви зберігатимете тип даних в змінній. var
Winston і зробимо W бо ми завжди починаємо
-
наші типи об'єктів з великої букви.
і ми встановимо його рівним функції.
-
І ця функція є спеціальною, яку ми
називаємо "функція конструктор"
-
так як, це те, що викликатимемо кожен раз,
при створенні нового примірника Вінстона
-
коли ми хочемо створити teenage
Winston, то викликатимемо цю функцію
-
а коли adultWinston, то викликатимемо цю.
-
Отже, це означає, що ця функція повинна
приймати будь-які аргументи які слід знати
-
про те, щоб, зробити цілого Вінстона
-
Так що в цьому випадку вона повинена знати
ім'я, вік, х, та у.
-
Тепер, коли ми отримали ті аргументи, нам
слід зробити щось з ними,
-
Отже, нам насправді потрібно приєднати цю
інформацію до об'єкта Вінстон.
-
Тому, ми використовуватимемо нове
спеціальне ключове слово, "this" [це]. І
-
"this" буде посилатися на конкретний
екземпляр об'єкта.
-
І так, введемо this.nickname, так що це
скаже, що все в порядку, властивість ім'я
-
цього об'єкта дорівнює
-
будь-що проходить в функцію
конструктора, гаразд?
-
І this.age = age, що буде надіслана в,
this.x = х, яка буде проходити і
-
this.y = y що проходить
-
Гаразд, тепер у нас є цей абстрактний тип
даних з ім'ям Вінстон, і має функцію
-
конструктора, який можна використовувати
для створення нового Вінстона.
-
Тому, спробуємо це!
-
Ми будемо створювати winstonTeen знову,
але на цей раз ми введемо winstonTeen =
-
і замість фігурних дужок, ми введемо
"= new Winston".
-
Таким чином, ми вводимо, що"ми намагаємося
створити новий екземпляр Вінстона"
-
а потім ми впустимо інформацію, яку їй
потрібно "Winsteen", 15, 20, 50, гаразд?
-
І тоді ми можемо вилучити цей старий, так
як він більше нам не потрібний.
-
Гаразд? І тепер, це створює
нового Winsteen.
-
І зараз ми можемо ввести
winstonAdult = new Winston()
-
і, звичайно, його звуть "пан
Winst-багатий", миле ім'я
-
і йому 30, розатшований на 229 і 50. Так?
і тоді ми можемо видалити літерал об'єкт
-
І тада! наш код все ще працює.
-
Отже, ми зробили те про, що обговорювали
про абстрактний тип даних яким є Вінстон.
-
і ми можемо створювати нові екземпляри
Вінстона, що мають ці властивості, які є
-
унікальними для них
-
І ми просто пам'ятатимемо ці властивості
всередині них
-
Запам'ятовування є дійсно важливим. Отже,
тут всередині маємо this.nickname this.age
-
Якщо ми випадково, не матимемо this.age,
зверніть увагу говорить, що "не визначено"
-
Це тому, що тут, ця функція drawWinston,
-
очікує будь-який об'єкт, що проходить вона
чекає на властивість віку.
-
І якщо ми не ввели this.age,
-
то вона не має властивості віку, так? Ми
передали її в функцію конструктора
-
але тоді ми нічого не робили, і нам слід
прикріпити його до об'єкту, використовуючи
-
ключове слово "this".
-
Таким чином, ми додамо це позаду
-
Тепер ви можете подумати добре, гаразд ваш
код працює, а ви робите ці примхливі речі
-
Але, знаєте все те, що ми зробили це
вдосконалили те, що у нас було раніше
-
Але ось класна річ. Тепер всі наші
Вінстони проходять через одну і ту саму
-
функцію конструктора
-
Тому, якщо ми хочемо, ми можемо змінити
стан речей, змінити дещо про Вінстона...
-
Вінстонів, всередині тут. Отже, можливо
вік, ми насправді хочемо ввести "років"
-
Ми можемо просто покласти, це тут, і тепер
всі наші Вінстони говорять "15 років",
-
"30 років", чи не так?
-
Таким чином, вони приймають ту частину, що
унікальною про них, але потім у них є
-
те, що спільне щодо них
-
І це дійсно класна річ щодо об'єктно-
орієнтованого програмування. ідея про те,
-
що ці види об'єктів в світі, і ви можете
створювати екземпляри цих об'єктів
-
і є деякі речі, що схожі та як всі вони
мають ті ж властивості,
-
і є речі, що відрізняються як... ця
властивість має інше значення, ніж ця
-
інша чи не так?
-
Але потім, ми можемо вичинити з ними
так само і викликати ті ж функції
-
і використовувати їх аналогічним чином.
Отже. це і є деякіі цікаві речі про
-
об'єктно-орієнтоване програмування
-
але як бачите, їх ще є набагато більше.
-
Отже, стежте за оновленнями!