Return to Video

Typy objektů

  • 0:01 - 0:03
    Teď, když chápete
    základy Javascriptu,
  • 0:03 - 0:06
    tak vás chci naučit
    o skvělém způsobu, jak ho použít.
  • 0:06 - 0:10
    Naučíme se to, čemu říkáme:
    "objektově orientované programování."
  • 0:10 - 0:12
    Nejdříve musíme
    pochopit, proč je to vlastně užitečné.
  • 0:12 - 0:15
    Takže, dala jsem dohromady program,
    který bude lepší,
  • 0:15 - 0:18
    jakmile ho zvládneme udělat
    více objektově orientovaný.
  • 0:18 - 0:20
    Pro začátek je to celkem dobrý program.
  • 0:20 - 0:24
    Nahoře máme dvě proměnné, které ukládají
    literály jednoduchých objektů.
  • 0:25 - 0:29
    Objektový literál je druh
    objektu, o kterém jsme se naučily dříve.
  • 0:29 - 0:31
    Vytvoříme ho pomocí
    dvou složených závorek
  • 0:31 - 0:34
    a pak vložíme všechny tyto
    názvy vlastností a hodnot dovnitř.
  • 0:34 - 0:37
    Takže máme dvě proměnné těchto
    objektových literálů a
  • 0:37 - 0:41
    pak zde dole máme funkci drawWinston,
    která očekává jediný argument.
  • 0:41 - 0:45
    Nakonec vykreslí argument,
    nakreslí obrázek na základě x
  • 0:45 - 0:48
    a y vlastností objektu.
  • 0:48 - 0:53
    Následuje titulek založený na přezdívce
    a věku tohoto objektu.
  • 0:53 - 0:56
    Nakonec úplně dole
    zavoláme drawWinston
  • 0:56 - 0:59
    na dospívajícího a na dospělého.
  • 0:59 - 1:01
    To je důvod, proč se to objeví.
  • 1:01 - 1:07
    Velmi dobré. Teď, když půjdeme nahoru,
    a podíváme se na tyto objektové literály,
  • 1:07 - 1:11
    všimněte si na nich něčeho.
    A to toho, že vypadají opravdu podobně.
  • 1:11 - 1:14
    Oba mají stejné sady
    vlastností
  • 1:14 - 1:18
    a oba mohou použít
    stejnou funkci drawWinston.
  • 1:18 - 1:22
    Ve skutečnosti, pokud o tom přemýšlíte,
    tak oba vlastně popisují
  • 1:22 - 1:24
    typ Winstona, že?
  • 1:24 - 1:29
    Můžeme o tom přemýšlet jako o
    abstraktním typu Winstonu na světě
  • 1:29 - 1:33
    a každý Winston má stejnou sadu vlastností
  • 1:33 - 1:36
    jako je přezdívka, věk, x a y.
  • 1:36 - 1:42
    To co jsme udělali je, že jsme nyní
    vytvořili dvě instance Winstona,
  • 1:42 - 1:45
    které popisují konkrétního Winstona.
  • 1:45 - 1:48
    Tím je dospívající Winston
    a toto je dospělý Winston.
  • 1:48 - 1:53
    Opravdu jsou si
    oba velmi podobní a
  • 1:53 - 1:55
    mají spoustu věcí společných.
  • 1:55 - 1:58
    Pokud se zamyslíte, tak je hodně
    podobné jako na světě.
  • 1:58 - 2:01
    Máme tyto abstraktní datové typy
    jako je například člověk a lidi
  • 2:01 - 2:04
    a pak my jsme všichni prostě konkrétní
    jejich příklady
  • 2:04 - 2:06
    s našimi vlastními malými vlastnostmi.
  • 2:06 - 2:10
    Nyní můžeme už použít objektově
    orientované techniky v Javascriptu,
  • 2:10 - 2:18
    takže tyto proměnné Winstona
    jsou formální instance objektu Winston,
  • 2:18 - 2:22
    takže ony vědí, že sdílejí
    společně určité věci.
  • 2:22 - 2:25
    Tak to udělejme. První věcí, kterou
    potřebujeme,
  • 2:25 - 2:30
    je vlastně popsat tento abstraktní datový
    typ Winstona a uděláme to proměnnou.
  • 2:30 - 2:35
    Datový typ uložíme do proměnné,
    tak napíšeme var Winston, uděláme velké W,
  • 2:35 - 2:39
    protože vždy začínáme
    naše typy objektů velkým písmenem
  • 2:39 - 2:42
    a nastavíme to na funkci.
  • 2:42 - 2:47
    Tato funkce je speciální funkce,
    kterou nazýváme "konstruktorovou funkcí",
  • 2:47 - 2:49
    protože to je to, co se volá
    pokaždé,
  • 2:49 - 2:52
    když chceme vytvořit novou
    instanci Winstona.
  • 2:52 - 2:56
    Tedy, když chceme vytvořit dospívajícího
    Winstona, volá se tato funkce
  • 2:56 - 2:58
    nebo dospělého Winstona,
    tak se tato funkce také volá.
  • 2:58 - 3:03
    To znamená, že tato funkce
    by měla dostat všechny argumenty,
  • 3:03 - 3:06
    které potřebuje vědět z důvodu,
    aby vytvořila celého Winstona.
  • 3:06 - 3:11
    V tomto případě musí vědět
    přezdívku, věk, x a y.
  • 3:11 - 3:15
    Jakmile máme tyto argumenty,
    musíme s nimi něco udělat,
  • 3:15 - 3:21
    a to, že musíme připojit tyto
    informace k objektu Winston.
  • 3:21 - 3:27
    Použijeme tedy nové speciální klíčové
    slovo "this". A „this“ bude odkazovat
  • 3:27 - 3:29
    k aktuální instanci objektu.
  • 3:29 - 3:32
    Takže napíšeme this.nickname,
    tak je to správně,
  • 3:32 - 3:34
    název vlastnosti
    tohoto objektu se rovná
  • 3:34 - 3:38
    čemukoliv co projde
    funkcí konstruktoru, ano?
  • 3:38 - 3:42
    A this.age se rovná věku,
    který vložíme,
  • 3:42 - 3:45
    this.x je stejná na x,
    které se dostane dovnitř
  • 3:45 - 3:47
    a this.y se rovná y,
    které se dostane dovnitř.
  • 3:47 - 3:53
    Dobře, tak teď máme tento
    abstraktní datový typ s názvem Winston
  • 3:53 - 3:56
    a má funkci konstruktoru, kterou
    můžeme použít k vytvoření nového Winstonu.
  • 3:56 - 3:59
    Zkusme to použít!
  • 3:59 - 4:03
    Budeme znovu vytvářet winstonTeen,
  • 4:03 - 4:05
    ale tentokrát napíšeme
    winstonTeen se rovná
  • 4:05 - 4:11
    a místo složených závorek
    napíšeme „rovná se new Winston“.
  • 4:11 - 4:14
    Tím říkáme „zkoušíme
    vytvořit novou instanci Winstona“
  • 4:14 - 4:16
    a pak půjdeme po
    informacích, které potřebujeme,
  • 4:16 - 4:21
    takže "Winsteen", 15, 20, 50, dobře?
  • 4:22 - 4:27
    Pak můžeme tento starý smazat,
    protože ho už nepotřebujeme.
  • 4:27 - 4:30
    Dobře? A teď jsme
    vytvořily nového Winsteena.
  • 4:31 - 4:36
    Nyní můžeme napsat
    winstonAdult = new Winston ()
  • 4:36 - 4:41
    a samozřejmě jeho jméno je
    "Pane Winst-a-lot", milé jméno,
  • 4:41 - 4:45
    a je mu 30 a má 229 a 50.
    Dobře?
  • 4:45 - 4:51
    Poté můžeme smazat tento předmět doslovný,
    a tada! Náš kód stále funguje.
  • 4:51 - 4:54
    Co jsme tady udělali
    je to, že jsme řekli, že je tady,
  • 4:54 - 4:58
    tento druh abstraktního typu
    dat, což je tento Winston
  • 4:58 - 5:03
    a můžeme vytvořit nové instance Winstona,
    které mají vlastnosti,
  • 5:03 - 5:05
    které jsou pro ně jedinečné.
  • 5:05 - 5:09
    Stačí si jen pamatovat
    vlastnosti uvnitř nich.
  • 5:09 - 5:12
    A pamatování je opravdu důležité.
    Takže tady vidíte,
  • 5:12 - 5:14
    máme this.nickname, this.age.
  • 5:14 - 5:20
    Pokud bychom náhodou neměli this age,
    všimněte si, že nyní říká „nedefinováno“.
  • 5:20 - 5:23
    To proto, že tady dole,
    tato funkce drawWinston,
  • 5:23 - 5:28
    očekává, že dostane jakýkoli předmět,
    očekává, že bude mít vlastnost věk.
  • 5:28 - 5:31
    A pokud jsme nenapsali this.age,
  • 5:31 - 5:34
    pak to nemá tuto vlastnost.
    Předali jsme ji konstrukční funkci,
  • 5:34 - 5:37
    ale pak jsme s tím nic nedělali,
    musíme to vlastně připojit
  • 5:37 - 5:39
    k objektu pomocí klíčového slova „this“.
  • 5:40 - 5:42
    Dáme to zpět.
  • 5:42 - 5:45
    Nyní byste mohli přemýšlet,
    jak váš kód funguje,
  • 5:45 - 5:50
    ale, víte vše, co jsme udělali, je
    splnění toho, co jsme měli předtím.
  • 5:50 - 5:53
    Ale tady je ta skvělá věc.
  • 5:53 - 5:56
    Nyní, všechny naši Winstoni lze měnit
    pomocí stejné funkce konstruktoru.
  • 5:56 - 6:01
    Takže pokud chceme, můžeme
    změnit některé věci o Winstonovi.
  • 6:01 - 6:04
    Takže možná věk chceme upravit a
  • 6:04 - 6:06
    připojit k němu nakonec „yrs old“.
  • 6:06 - 6:10
    Můžeme to prostě dát sem,
    a teď se ke všem našim Winstonům připíše:
  • 6:10 - 6:13
    "15 let," "30 let," že?
  • 6:13 - 6:15
    Takže tato část
    je o nich jedinečná,
  • 6:15 - 6:17
    ale pak také mají věci
    které jsou společné.
  • 6:17 - 6:20
    A super věcí na objektově
    orientovaném programování je to,
  • 6:20 - 6:22
    že existuje
    spousta druhů předmětů
  • 6:22 - 6:26
    na světě z kterých můžete
    vytvářet instance,
  • 6:26 - 6:28
    Jsou tu nějaké věci,
    které jsou podobné
  • 6:28 - 6:30
    jako by všichni měli stejné vlastnosti.
  • 6:30 - 6:34
    Pak jsou věci, které jsou různé
    jako oh, tato vlastnost je ve skutečnosti
  • 6:34 - 6:36
    jiná hodnota
    než tato jiná vlastnost, že?
  • 6:36 - 6:39
    Ale pak, víte, můžeme s nimi dělat
    stejné věci
  • 6:39 - 6:41
    jako volat stejné funkce
  • 6:41 - 6:43
    a používat je podobným způsobem.
  • 6:43 - 6:46
    To jsou jen některé úžasné věci
    na objektově orientovaném programování,
  • 6:46 - 6:49
    ale jak uvidíte,
    je toho spousta.
  • 6:49 - 6:50
    Takže zůstaňte ve střehu!
Title:
Typy objektů
Description:

more » « less
Video Language:
English
Duration:
06:51

Czech subtitles

Revisions Compare revisions