0:00:00.774,0:00:04.978 Napisałam program, aby opowiedzieć[br]o Winstonie. Są pikantne szczegóły, 0:00:05.078,0:00:08.614 ale niedużo, bo Winston[br]lubi mieć tajemnice. 0:00:08.714,0:00:10.216 Taki charakter. 0:00:11.259,0:00:13.451 Zobaczmy, jak napisałam[br]ten program. 0:00:13.551,0:00:16.954 Zmienne u góry przechowują[br]informacje o Winstonie. 0:00:17.054,0:00:19.260 Pierwsza - to liczba, czyli wiek, 0:00:19.360,0:00:21.727 druga - ciąg znaków (oczy), 0:00:21.827,0:00:26.038 trzecia - tablica słów[br](ulubione zajęcia), 0:00:26.138,0:00:30.255 a ciągi znaków w 2 ostatnich zmiennych[br]dotyczą miejsca urodzenia. 0:00:31.416,0:00:34.829 Napisałam to u dołu[br]z użyciem polecenia „text” 0:00:34.929,0:00:36.501 i nazwy zmiennej. 0:00:36.601,0:00:40.960 A do elementów tablicy mam dostęp[br]przez nawiasy kwadratowe. 0:00:41.981,0:00:42.981 W porządku. 0:00:43.081,0:00:44.983 Cała piątka zmiennych 0:00:45.083,0:00:48.622 zawiera informacje[br]na jeden temat: Winstona. 0:00:48.722,0:00:51.687 Ale zmienne nie wiedzą,[br]że dotyczą tego samego. 0:00:52.477,0:00:54.959 A w JavaScript, 0:00:55.059,0:00:58.235 gdy chcemy przechowywać[br]różne, ale powiązane informacje, 0:00:58.335,0:01:01.154 mamy na to świetny sposób. 0:01:01.254,0:01:02.670 Chodzi o obiekt. 0:01:03.460,0:01:06.140 Zamiast pięciu zmiennych 0:01:06.240,0:01:11.029 możemy mieć jedną, która przechowa[br]wszystkie te informacje. Super! 0:01:11.935,0:01:14.234 Wypróbujmy to na Winstonie. 0:01:14.334,0:01:17.786 Najpierw określimy zmienną[br]i nazwiemy ją „Winston”. 0:01:17.886,0:01:21.041 Potem otworzymy klamrę 0:01:21.141,0:01:23.127 (nie nawias kwadratowy!) 0:01:23.692,0:01:25.356 i wstawimy średnik. 0:01:25.456,0:01:30.240 Stworzyliśmy obiekt,[br]ale nie zawiera on informacji. 0:01:31.765,0:01:35.480 Żeby dodać informacje,[br]musimy dodać właściwości. 0:01:35.580,0:01:37.907 Właściwość - to klucz i wartość. 0:01:38.007,0:01:40.913 Np. wiek opiszemy jako „wiek: 19”. 0:01:41.331,0:01:44.725 Dobrze. Przy oczach[br]wstawimy przecinek 0:01:44.825,0:01:47.229 i damy „oczy, czarne”. 0:01:47.763,0:01:51.943 Winston ma teraz[br]dwie właściwości w obiekcie. 0:01:52.709,0:01:55.753 Co do ulubionych zajęć...[br]Piszemy „lubi:” 0:01:55.853,0:01:58.398 po czym kopiuję i wklejam to. 0:01:59.304,0:02:00.995 Bardzo ładnie. 0:02:01.254,0:02:04.113 Patrzcie: Winston ma[br]trzy właściwości. 0:02:04.213,0:02:06.479 Każda właściwość składa się z klucza, 0:02:06.579,0:02:08.776 po prawej stronie, 0:02:08.877,0:02:11.401 i wartości, po stronie lewej. 0:02:12.748,0:02:16.881 Klucz ma być zgodny z zasadami[br]JavaScript co do nazw zmiennych. 0:02:16.981,0:02:20.085 Bez spacji, początek od litery itp. 0:02:20.666,0:02:24.567 Wartość może być każdego typu,[br]jaki znamy. 0:02:24.667,0:02:27.555 Liczba, ciąg znaków, tablica... 0:02:27.655,0:02:29.241 nawet wyrażenie logiczne. 0:02:29.341,0:02:33.321 Możemy dodać:[br]„jest_fajny : prawda”. Oczywiście! 0:02:33.421,0:02:37.431 Wartością może być nawet[br]inny obiekt! 0:02:37.965,0:02:40.473 Miasto i stan, gdzie Winston się urodził. 0:02:40.573,0:02:44.699 Te informacje dotyczą tego samego:[br]jednego miejsca. 0:02:45.532,0:02:48.762 Zatem lepiej przechowywać to[br]jako obiekt. 0:02:48.862,0:02:51.087 Dodam klucz, „miejsce urodzenia”, 0:02:51.187,0:02:54.985 a co do wartości... zrobię klamry 0:02:55.085,0:02:57.784 i w środku napiszę klucz dla miasta: 0:02:58.607,0:03:00.349 „Mountain View”, 0:03:00.449,0:03:03.414 i stanu: „Kalifornia”. 0:03:04.803,0:03:05.392 Świetnie! 0:03:05.492,0:03:09.637 Widzicie, że w obiekcie można[br]przechowywać dużo informacji. 0:03:11.216,0:03:15.590 Kiedy już mamy obiekt[br]z informacjami o Winstonie, 0:03:15.690,0:03:19.157 spróbujmy skasować[br]stare oddzielne zmienne, 0:03:19.257,0:03:22.222 które nie wiedziały o sobie nawzajem. 0:03:22.313,0:03:24.382 Dobrze? Oj! 0:03:24.482,0:03:25.960 Mamy błąd. 0:03:26.060,0:03:29.803 Bo polecenia „text”[br]odnoszą się do starych zmiennych. 0:03:29.903,0:03:34.134 Musimy je uaktualnić, żeby używały[br]informacji z obiektu. 0:03:34.234,0:03:39.683 Najpierw wycofam trzy ostatnie,[br]po jednej. 0:03:40.477,0:03:43.608 No dobrze. Teraz mamy[br]wiek Winstona. 0:03:43.708,0:03:46.090 Musimy to zmienić. 0:03:46.190,0:03:49.575 Wpisujemy „Winston” - nazwę zmiennej. 0:03:49.675,0:03:51.775 Jeśli zostawimy to, jak jest, 0:03:51.875,0:03:54.916 widać: „object object”. Wstrętne! 0:03:55.016,0:03:57.105 Tak JavaScript mówi nam, 0:03:57.205,0:04:00.721 że próbujemy zmienić cały[br]obiekt w ciąg znaków. 0:04:00.821,0:04:04.761 A my chcemy tylko dostać się[br]do „wieku” wewnątrz. 0:04:04.861,0:04:06.990 Stawiamy więc kropkę, 0:04:07.090,0:04:10.752 a potem wpisujemy klucz[br]właściwości, czyli „wiek”. 0:04:10.852,0:04:12.337 Hura, mamy wiek! 0:04:13.173,0:04:14.773 Nazywamy to notacją z kropką. 0:04:14.873,0:04:17.207 Piszemy nazwę zmiennej obiektu, 0:04:17.307,0:04:18.461 stawiamy kropkę 0:04:18.560,0:04:20.985 i wpisujemy klucz właściwości. 0:04:21.084,0:04:23.453 Zróbmy coś więcej. 0:04:23.553,0:04:26.866 Wycofajmy to[br]i zamiast „Winston eyes” 0:04:26.966,0:04:29.142 napiszmy Winston - kropka eyes. 0:04:29.242,0:04:33.600 A tu będzie: Winston - kropka - lubi. 0:04:33.700,0:04:36.317 Potem: Winston - kropka - lubi 1. 0:04:37.083,0:04:39.939 Z ostatnią zmienną 0:04:40.039,0:04:42.282 będzie trochę trudniej, 0:04:42.382,0:04:44.653 bo to obiekt w obiekcie. 0:04:44.753,0:04:47.997 Napiszemy „Winston”,[br]postawimy kropkę, 0:04:48.097,0:04:49.653 „birthplace” (m. urodzenia) 0:04:49.753,0:04:51.967 ale nadal będzie to obiekt, 0:04:52.067,0:04:54.405 więc potrzebujemy kropki i miasta. 0:04:55.520,0:04:56.913 Zróbmy to tutaj. 0:04:57.013,0:05:01.302 Winston - kropka - miejsce[br]urodzenia - kropka - stan. 0:05:01.402,0:05:02.323 Hura! 0:05:02.423,0:05:06.991 Super: możemy sięgać do obiektów[br]znajdujących się w obiektach. 0:05:08.244,0:05:09.429 W porządku! 0:05:10.474,0:05:11.867 Fantastycznie! 0:05:11.967,0:05:13.748 Jak widzicie, 0:05:13.848,0:05:15.953 w obiektach można przechowywać 0:05:16.053,0:05:19.227 powiązanych informacji o czymś, 0:05:19.327,0:05:21.178 do których potem[br]mamy dostęp. 0:05:21.271,0:05:24.498 Oglądajcie dalej. Zobaczycie,[br]jak świetne są obiekty!