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