< Return to Video

Типи об'єктів

  • 0:01 - 0:04
    Тепер, коли ви розумієте основи
    Javascript, я хочу навчити вас класному
  • 0:04 - 0:06
    способу використання Javascript
  • 0:06 - 0:10
    Щось, що ми називаємо
    "об'єктно-орієнтоване програмування"
  • 0:10 - 0:13
    Але спочатку ми повинні зрозуміти, чому
    це насправді пригодиться
  • 0:13 - 0:18
    Тому, я склала програму, що є кращою коли
    робитимемо її більш об'єктно-орієнтованою
  • 0:18 - 0:21
    Тепер, це досить класна програма, щоб
    розпочати. Вгорі у мене є дві змінні, що
  • 0:21 - 0:25
    зберігають прості літерали об'єктів
    всередині.
  • 0:25 - 0:28
    Тепер об'єкт літерал є свого роду об'єкт,
    про який ми дізналися раніше, що ми
  • 0:28 - 0:30
    створюємо з двома фігурними дужками
  • 0:30 - 0:34
    а потім ми поміщаємо всі ці імена і
    значення властивостей, всередину.
  • 0:34 - 0:38
    Отже, у нас є два з цих об'єктів з літерал
    значенням, а тоді знизу тут маємо
  • 0:38 - 0:41
    цю функцію drawWinston, що очікує
    один аргумент,
  • 0:41 - 0:47
    а потім він відтворює аргумент, малює
    картинку, на основі х та у властивостей
  • 0:47 - 0:53
    об'єкту, а потім підпис на основі його
    псевдонімів і вікових властивостей.
  • 0:53 - 0:58
    І тепер, нарешті, знизу, ми викликаємо
    drawWinston() onTeen та onAdult,
  • 0:58 - 1:01
    І це те, що це робить. Показує його
  • 1:01 - 1:06
    Дуже здорово. Тепер, якщо ми йдемо сюди,
    і ми подивимося на ці об'єкти літералів,
  • 1:06 - 1:11
    зверніть увагу на те, що вони дуже похожі.
  • 1:11 - 1:15
    Обидва мають однакові набори властивостей,
    і обидва з них можуть бути використані і
  • 1:15 - 1:18
    тією ж функцією drawWinston ().
  • 1:18 - 1:24
    Насправді, знаєте, якщо ви про це думаєте,
    вони дійсно описують тип Вінстон, так?
  • 1:24 - 1:29
    І ми можемо думати, це може бути, свого
    роду абстрактний тип Вінстона в світі,
  • 1:29 - 1:36
    і кожен Вінстон має той же набір
    властивостей, як псевдонім і вік, х та у
  • 1:36 - 1:42
    і тут, те що ми зробили, це ми тільки що
    створили 2 примірника Вінстона
  • 1:42 - 1:48
    щоб описати, певного Winston. Так що це
    підліток Вінстон, а це дорослий Вінстон.
  • 1:48 - 1:54
    Але вони насправді, вони дійсно дуже схожі
    як є багато речей, які подібні про них.
  • 1:54 - 2:00
    Якщо подумати, багато у світ працює так, і
    те, що у нас ці абстрактних типи даних,
  • 2:00 - 2:01
    люди, народ
  • 2:01 - 2:05
    і тоді ми всі просто конкретні приклади
    з нашими власними властивостями.
  • 2:05 - 2:10
    Тепер ми можемо фактично використовувати
    об'єктно-орієнтовані методи в JavaScript,
  • 2:10 - 2:15
    так що ці змінні Вінстон.
  • 2:15 - 2:21
    є лише примірниками об'єкта Вінстон так що
    вони знають, що поділяють ці спільні риси.
  • 2:21 - 2:27
    Таким чином, щоб зробити це, спочатку нам
    потрібно описати цей абстрактний тип даних
  • 2:27 - 2:31
    Вінстон. І тому, ми зробимо це створюючи
    змінну
  • 2:31 - 2:37
    Ви зберігатимете тип даних в змінній. var
    Winston і зробимо W бо ми завжди починаємо
  • 2:37 - 2:42
    наші типи об'єктів з великої букви.
    і ми встановимо його рівним функції.
  • 2:42 - 2:47
    І ця функція є спеціальною, яку ми
    називаємо "функція конструктор"
  • 2:47 - 2:52
    так як, це те, що викликатимемо кожен раз,
    при створенні нового примірника Вінстона
  • 2:52 - 2:55
    коли ми хочемо створити teenage
    Winston, то викликатимемо цю функцію
  • 2:55 - 2:58
    а коли adultWinston, то викликатимемо цю.
  • 2:58 - 3:03
    Отже, це означає, що ця функція повинна
    приймати будь-які аргументи які слід знати
  • 3:03 - 3:06
    про те, щоб, зробити цілого Вінстона
  • 3:06 - 3:11
    Так що в цьому випадку вона повинена знати
    ім'я, вік, х, та у.
  • 3:11 - 3:15
    Тепер, коли ми отримали ті аргументи, нам
    слід зробити щось з ними,
  • 3:15 - 3:21
    Отже, нам насправді потрібно приєднати цю
    інформацію до об'єкта Вінстон.
  • 3:21 - 3:26
    Тому, ми використовуватимемо нове
    спеціальне ключове слово, "this" [це]. І
  • 3:26 - 3:29
    "this" буде посилатися на конкретний
    екземпляр об'єкта.
  • 3:29 - 3:33
    І так, введемо this.nickname, так що це
    скаже, що все в порядку, властивість ім'я
  • 3:33 - 3:35
    цього об'єкта дорівнює
  • 3:35 - 3:38
    будь-що проходить в функцію
    конструктора, гаразд?
  • 3:38 - 3:44
    І this.age = age, що буде надіслана в,
    this.x = х, яка буде проходити і
  • 3:44 - 3:48
    this.y = y що проходить
  • 3:48 - 3:54
    Гаразд, тепер у нас є цей абстрактний тип
    даних з ім'ям Вінстон, і має функцію
  • 3:54 - 3:58
    конструктора, який можна використовувати
    для створення нового Вінстона.
  • 3:58 - 3:59
    Тому, спробуємо це!
  • 4:00 - 4:05
    Ми будемо створювати winstonTeen знову,
    але на цей раз ми введемо winstonTeen =
  • 4:05 - 4:10
    і замість фігурних дужок, ми введемо
    "= new Winston".
  • 4:10 - 4:14
    Таким чином, ми вводимо, що"ми намагаємося
    створити новий екземпляр Вінстона"
  • 4:14 - 4:22
    а потім ми впустимо інформацію, яку їй
    потрібно "Winsteen", 15, 20, 50, гаразд?
  • 4:22 - 4:28
    І тоді ми можемо вилучити цей старий, так
    як він більше нам не потрібний.
  • 4:28 - 4:31
    Гаразд? І тепер, це створює
    нового Winsteen.
  • 4:31 - 4:36
    І зараз ми можемо ввести
    winstonAdult = new Winston()
  • 4:36 - 4:40
    і, звичайно, його звуть "пан
    Winst-багатий", миле ім'я
  • 4:40 - 4:47
    і йому 30, розатшований на 229 і 50. Так?
    і тоді ми можемо видалити літерал об'єкт
  • 4:47 - 4:51
    І тада! наш код все ще працює.
  • 4:51 - 4:58
    Отже, ми зробили те про, що обговорювали
    про абстрактний тип даних яким є Вінстон.
  • 4:58 - 5:02
    і ми можемо створювати нові екземпляри
    Вінстона, що мають ці властивості, які є
  • 5:02 - 5:05
    унікальними для них
  • 5:05 - 5:09
    І ми просто пам'ятатимемо ці властивості
    всередині них
  • 5:09 - 5:14
    Запам'ятовування є дійсно важливим. Отже,
    тут всередині маємо this.nickname this.age
  • 5:14 - 5:20
    Якщо ми випадково, не матимемо this.age,
    зверніть увагу говорить, що "не визначено"
  • 5:20 - 5:23
    Це тому, що тут, ця функція drawWinston,
  • 5:23 - 5:28
    очікує будь-який об'єкт, що проходить вона
    чекає на властивість віку.
  • 5:28 - 5:31
    І якщо ми не ввели this.age,
  • 5:31 - 5:34
    то вона не має властивості віку, так? Ми
    передали її в функцію конструктора
  • 5:34 - 5:38
    але тоді ми нічого не робили, і нам слід
    прикріпити його до об'єкту, використовуючи
  • 5:38 - 5:39
    ключове слово "this".
  • 5:39 - 5:41
    Таким чином, ми додамо це позаду
  • 5:41 - 5:46
    Тепер ви можете подумати добре, гаразд ваш
    код працює, а ви робите ці примхливі речі
  • 5:46 - 5:51
    Але, знаєте все те, що ми зробили це
    вдосконалили те, що у нас було раніше
  • 5:51 - 5:55
    Але ось класна річ. Тепер всі наші
    Вінстони проходять через одну і ту саму
  • 5:55 - 5:56
    функцію конструктора
  • 5:56 - 6:01
    Тому, якщо ми хочемо, ми можемо змінити
    стан речей, змінити дещо про Вінстона...
  • 6:01 - 6:06
    Вінстонів, всередині тут. Отже, можливо
    вік, ми насправді хочемо ввести "років"
  • 6:06 - 6:11
    Ми можемо просто покласти, це тут, і тепер
    всі наші Вінстони говорять "15 років",
  • 6:11 - 6:13
    "30 років", чи не так?
  • 6:13 - 6:16
    Таким чином, вони приймають ту частину, що
    унікальною про них, але потім у них є
  • 6:16 - 6:17
    те, що спільне щодо них
  • 6:17 - 6:21
    І це дійсно класна річ щодо об'єктно-
    орієнтованого програмування. ідея про те,
  • 6:21 - 6:27
    що ці види об'єктів в світі, і ви можете
    створювати екземпляри цих об'єктів
  • 6:27 - 6:30
    і є деякі речі, що схожі та як всі вони
    мають ті ж властивості,
  • 6:30 - 6:33
    і є речі, що відрізняються як... ця
    властивість має інше значення, ніж ця
  • 6:33 - 6:36
    інша чи не так?
  • 6:36 - 6:41
    Але потім, ми можемо вичинити з ними
    так само і викликати ті ж функції
  • 6:41 - 6:44
    і використовувати їх аналогічним чином.
    Отже. це і є деякіі цікаві речі про
  • 6:44 - 6:46
    об'єктно-орієнтоване програмування
  • 6:46 - 6:48
    але як бачите, їх ще є набагато більше.
  • 6:48 - 6:50
    Отже, стежте за оновленнями!
Title:
Типи об'єктів
Description:

Це просто показ екрану нашої інтерактивної бесіди щодо кодування, готової щоб полегшити створення перекладу і субтитрів. Краще дивитися наші бесіди тут:
https://www.khanacademy.org/cs/programming/

more » « less
Video Language:
English
Duration:
06:51
Іван Соломаха edited Ukrainian subtitles for Object Types (Video Version) May 21, 2016, 8:45 AM
Іван Соломаха edited Ukrainian subtitles for Object Types (Video Version) May 21, 2016, 8:43 AM
Іван Соломаха edited Ukrainian subtitles for Object Types (Video Version) May 21, 2016, 8:29 AM
Іван Соломаха edited Ukrainian subtitles for Object Types (Video Version) May 21, 2016, 8:26 AM
Іван Соломаха edited Ukrainian subtitles for Object Types (Video Version) May 21, 2016, 8:24 AM
Іван Соломаха edited Ukrainian subtitles for Object Types (Video Version) May 21, 2016, 7:59 AM
Іван Соломаха edited Ukrainian subtitles for Object Types (Video Version) May 21, 2016, 7:53 AM
Іван Соломаха edited Ukrainian subtitles for Object Types (Video Version) May 21, 2016, 7:42 AM
Show all

Ukrainian subtitles

Incomplete

Revisions

  • Revision 22 Edited
    Іван Соломаха May 21, 2016, 8:45 AM