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:16
    Takže, dala jsem dohromady program,
    který bude lepší,
  • 0:16 - 0:17
    jakmile ho zvládneme udělat
    více objektově orientovaný.
  • 0:17 - 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:24 - 0:28
    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:33
    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:57
    na dospívajícího a na dospělého.
  • 0:57 - 1:00
    To je důvod, proč se to objeví.
  • 1:01 - 1:06
    Velmi dobré. Teď, když půjdeme nahoru,
    a podíváme se na tyto objektové literály,
  • 1:06 - 1:11
    všimněte si na nich něčeho.
    A to toho, že vypadají opravdu podobně.
  • 1:11 - 1:16
    Oba mají stejné sady
    vlastností
  • 1:16 - 1:17
    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:37
    jako je přezdívka, věk, x a y.
  • 1:37 - 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:17
    takže tyto proměnné Winstona
    jsou formální instance objektu Winston,
  • 2:18 - 2:22
    takže ony vědí, že sdílejí
    tyto 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:55
    Tedy, když chceme vytvořit dospívajícího
    Winstona, volá se tato funkce
  • 2:55 - 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:10
    V tomto případě musí vědět
    přezdívku, věk, x a y.
  • 3:11 - 3:15
    Jakmile dostane 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:44
    this.x je stejná na x,
    které se dostane dovnitř
  • 3:44 - 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:10
    a místo složených závorek
    napíšeme „rovná se nový 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:26
    Pak můžeme tento starý smazat,
    protože ho už nepotřebujeme.
  • 4:26 - 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:40
    a samozřejmě jeho jméno je
    "Pane Winst-a-lot", milé jméno,
  • 4:40 - 4:45
    a je mu 30 a má 229 a 50.
    Dobře?
  • 4:45 - 4:50
    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:57
    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,
    tak si všimněte, ž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á se, ž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, jsme ... vše, co jsme udělali, je
    splnění toho, co jsme měli předtím.
  • 5:50 - 5:54
    Ale tady je ta skvělá věc.
  • 5:54 - 5:56
    Nyní, všechny naši Winstoni lze měnit
    prostřednictvím stejné funkce konstruktoru.
  • 5:56 - 6:00
    Takže pokud chceme, můžeme
    změnit některé věci o Winstonovi.
  • 6:00 - 6:01
  • 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 se toho účastní
    to je o nich jedinečné,
  • 6:15 - 6:17
    ale pak také mají věci
    které jsou o nich sdíleny.
  • 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
    ve světě z kterých můžete skutečně
    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:32
    Pak jsou věci, které jsou různé
    jako oh, tato vlastnost je ve skutečnosti
  • 6:32 - 6:36
    jiná hodnota
    než tato jiná vlastnost, že?
  • 6:36 - 6:39
    Ale pak, víte, můžeme to udělat
    stejné chování s nimi
  • 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 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