< Return to Video

Arrays of Objects (Video Version)

  • 0:00 - 0:04
    Lad os fortsætte med at se,
    hvad vi kan gøre med objekter.
  • 0:04 - 0:08
    Vi er tilbage med det program
    vi brugte i modulet om funktioner.
  • 0:08 - 0:11
    Dette program har funktionen 'drawWinston'
  • 0:11 - 0:15
    som kan tegne Winston
    ved visse x'er og y'er.
  • 0:15 - 0:18
    Her kalder vi 'drawWinston' fire gange.
  • 0:18 - 0:21
    Hver gange med et forskelligt
    sæt af x- og y-koordinater.
  • 0:21 - 0:23
    Du kender mig jo.
  • 0:23 - 0:26
    Når jeg ser disse fire kald
    på 'drawWinston',
  • 0:26 - 0:29
    der ser så ens ud,
    så tænker jeg straks på,
  • 0:29 - 0:32
    hvor meget bedre det ville
    være at bruge en løkke
  • 0:32 - 0:36
    og kalde den én gang inde i løkken
  • 0:36 - 0:39
    og ændre x og y i hvert
    af løkkens gennemløb.
  • 0:39 - 0:46
    For at gøre det skal vi gemme disse
    x- og y-positioner i et array,
  • 0:46 - 0:47
    som kan gennemløbes.
  • 0:47 - 0:52
    Vi har to sæt af værdier,
    så vi kan lave to arrays.
  • 0:52 - 0:56
    Et for x-positionerne og
    et for y-positionerne.
  • 0:56 - 1:03
    Vi taster
    >var xPositions = [99, 294, 101, 294];< og
  • 1:03 - 1:09
    >var yPositions = [117, 117, 316, 316];<
  • 1:09 - 1:13
    Nu kan vi gennemløbe disse
    ved at bruge en for-løkke.
  • 1:13 - 1:19
    >for (var i = 0; i < xPositions.length; i++)<
  • 1:19 - 1:21
    som gennemløber hvert element i xPositions
  • 1:21 - 1:23
    og vi tegner Winston med
  • 1:23 - 1:31
    >drawWinston(xPositions[i], yPositions[i]);<
  • 1:31 - 1:35
    Okay, lad os se om det virker,
    når vi sletter dette.
  • 1:35 - 1:36
    Okay, det virker.
  • 1:36 - 1:41
    Nu har vi denne ene linje med kode,
    der tegner Winston
  • 1:41 - 1:45
    og gør det i hver position
    i arrayet xPositions.
  • 1:45 - 1:50
    Vi kan tilføje flere positioner
    ved at skrive 10 og 1
  • 1:50 - 1:53
    og 1 og 1
  • 1:53 - 1:58
    og 100 og 1.
  • 1:58 - 2:02
    Det begynder at se lidt rodet ud,
  • 2:02 - 2:03
    og det kan jeg ikke lide,
  • 2:03 - 2:08
    da det er svært at se,
    hvilket x der hører til hvilket y.
  • 2:08 - 2:14
    Det skal være nemt at se mine x og y par
  • 2:14 - 2:21
    uden jeg skal forsøge at skrive dem
    under hinanden på denne måde.
  • 2:21 - 2:27
    Jeg vil gerne gemme disse
    positioner på en anden måde.
  • 2:27 - 2:31
    En ide er i stedet at gemme dem i objekter
  • 2:31 - 2:36
    da hver position består af
    to informationer, x og y.
  • 2:36 - 2:40
    Vi kan lave et objekt
    med egenskaberne x og y.
  • 2:40 - 2:45
    Og dernæst kan vi have et array af
    objekter med disse x- og y-positioner.
  • 2:45 - 2:46
    Lad os gøre det.
  • 2:46 - 2:49
    Vi taster >var positions = [];<
  • 2:49 - 2:51
    da det skal være et array,
  • 2:51 - 2:54
    men i stedet for
    at hvert element er et tal,
  • 2:54 - 2:57
    så skal det være et objekt.
  • 2:57 - 3:05
    Vi bruger derfor {} og
    indsætter x: 99, y: 117.
  • 3:05 - 3:08
    Nu har vi en af vores positioner.
  • 3:08 - 3:11
    Vi kan tilføje endnu en
  • 3:11 - 3:14
    >{x: 294, y: 117},<
  • 3:14 - 3:19
    hvor x er 294 og y er 117.
  • 3:19 - 3:25
    Den tredje er>{x: 101, y: 316},<
  • 3:25 - 3:31
    og den sidste er >{x: 294, y: 316},<.
  • 3:31 - 3:35
    Nu har vi et array af objekter,
  • 3:35 - 3:39
    hvor hvert objekt har egenskaberne x og y.
  • 3:39 - 3:44
    Hernede i vores for-løkke ændrer vi
    den til at gennemløbe positions.length
  • 3:44 - 3:49
    og så indsætter vi objektet.
  • 3:49 - 3:54
    Lige nu er det hele objektet,
    men vi skal bruge x og y,
  • 3:54 - 3:59
    så vi skal ændrer det til
    position[i].x og positions[i].y
  • 3:59 - 4:01
    Sådan!!!
  • 4:01 - 4:05
    Nu kan vi fjerne disse
    gamle kludrede arrays.
  • 4:05 - 4:06
    Flot.
  • 4:06 - 4:10
    Dette ser, for mig, meget pænere ud
    og gør koden meget nemmere at læse.
  • 4:10 - 4:13
    Og når vi har mere læsbar kode,
    så er det godt.
  • 4:13 - 4:15
    Det gør det også nemmere at tilføje noget.
  • 4:15 - 4:19
    Jeg tilføjer x y parret samlet.
  • 4:19 - 4:23
    Lad os sige >{x: 200, y: 200},<
  • 4:23 - 4:27
    og jeg får en Winston i midten.
  • 4:27 - 4:27
    Sejt.
  • 4:27 - 4:31
    Nu vil jeg vise dig noget,
    der er endnu mere smart.
  • 4:31 - 4:37
    Bemærk at vores funktion lige nu
    accepterer to tal
  • 4:37 - 4:39
    og dernæst bruger disse to tal.
  • 4:39 - 4:42
    Vi kan ændre vores funktion,
    så den forventer et objekt
  • 4:42 - 4:45
    og får x og y fra dette objekt.
  • 4:45 - 4:50
    Hernede skal vi blot have
    objektet positions[i]
  • 4:50 - 4:51
    Lad os prøve det.
  • 4:51 - 4:54
    Vi bruger vores objekt,
    men nu virker det ikke.
  • 4:54 - 4:57
    Det er fordi vores funktion stadig
    forventer to argumenter,
  • 4:57 - 4:59
    og den får kun ét.
  • 4:59 - 5:02
    Så vi ændrer funktionen til
    kun at få 'facePosition'.
  • 5:02 - 5:06
    Nu får vi fejlen faceX er ikke defineret,
  • 5:06 - 5:12
    fordi vi før brugte faceX som et argument,
    men nu eksisterer det ikke.
  • 5:12 - 5:13
    i stedet har vi et objekt.
  • 5:13 - 5:21
    Det vi gør er, at gemme x positionen
    fra objektet i variablen faceX.
  • 5:21 - 5:25
    Vi har dette objekt og
    objektet har egenskaben x,
  • 5:25 - 5:28
    så vi gemmer den i variablen faceX.
  • 5:28 - 5:30
    Og så gør vi det samme for y,
  • 5:30 - 5:33
    og taster >faceY = facePosition.y<.
  • 5:33 - 5:35
    Sådan.
  • 5:35 - 5:38
    I resten af funktionen bruges
    faceX og faceY.
  • 5:38 - 5:40
    Vi skal sikre os, at de er stavet korrekt,
  • 5:40 - 5:42
    hvis vi brugte xx, så virker det ikke,
  • 5:42 - 5:46
    da det ikke er det, der står hernede
    i vores array af objekter.
  • 5:46 - 5:48
    Det skal passe sammen.
  • 5:48 - 5:50
    Men det er ret smart.
  • 5:50 - 5:52
    Du kan have et array af objekter.
  • 5:52 - 5:54
    Du kan have funktioner,
    der bruger objekter.
  • 5:54 - 5:59
    Du vil opdage at dine programmer bliver
    ret smarte på grund af den måde
  • 5:59 - 6:00
    de strukturer deres data.
  • 6:00 - 6:04
    Da du så tit har x og y, der hører sammen,
  • 6:04 - 6:09
    så vil du opdage, at de især er nyttige i
    dine grafik og animationsprogrammer.
  • 6:09 - 6:11
    Så kom bare i gang og ha' det sjovt.
Title:
Arrays of Objects (Video Version)
Description:

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

Danish subtitles

Revisions