Powtórka
Advertisement
Advertisement
Advertisement
Advertisement
Advertisement
Read Time:
3 min
This post is part of a series called JavaScript Succinctly.
Polish (Polski) translation by Krzysztof Kaptur (you can also view the original English article)
Następujące punkty podsumowują, co powinieneś wiedzieć po przeczytaniu tej książki (oraz przerobieniu przykładów). Przeczytaj wszystkie podsumowania i jeżeli czegoś nie rozumiesz to wróć do odpowiedniego tematu z książki.
- Obiekt składa się z nazwanych właściwości, które przechowują wartości.
- Prawie wszystko w JavaScript może zachowywać się jak obiekt. Złożone wartości są obiektami, proste wartości mogą być traktowane jak obiekty. Dlatego możesz usłyszeć, że wszystko w JavaScript jest obiektem.
- Obiekty są tworzone poprzez użycie konstruktora funkcji
new
, lub przez użycie literału. - Konstruktory funkcji są obiektami (obiektami
Function()
), dlatego że w JavaScript obiekty tworzy się za pomocą obiektów. - JavaScript posiada dziewięć wbudowanych konstruktorów funkcji:
Object()
,Array()
,String()
,Number()
,Boolean()
,Function()
,Date()
,RegExp()
orazError()
. Konstruktory String(), Number() oraz Boolean() mają dwojaką rolę w dostarczaniu a) prostych wartości oraz b) opakowań obiektów, jeśli chcemy by proste wartości zachowywały się jak obiekty. - Wartości
null
,undefined
,"string"
,10
,true
, orazfalse
są prostymi wartościami, nie posiadają charakterystyki obiektów, chyba że będą jak one traktowane. - Kiedy konstruktory
Object()
,Array()
,String()
,Number()
,Boolean()
,Function()
,Date()
,RegExp()
, orazError()
są wywołane poprzez użycie słowa kluczowegonew
, obiekt który zostanie stworzony nazywany jest "obiektem złożonym". -
"string"
,10
,true
, orazfalse
, w ich prymitywnej formie, nie posiadają właściwości obiektów, chyba że zostaną jako takowe użyte; wtedy JavaScript, za naszymi plecami, tworzy obiekt opakowujący, dzięki czemu wyżej wymienione wartości mogą być traktowane jak obiekt. - Proste wartości przechowywane są przez wartość i są dosłownie kopiowane. Złożone wartości obiektu natomiast, przechowywane są poprzez odniesienia i kiedy są kopiowane, to właśnie przez odniesienia.
- Proste wartości są równe względem siebie, gdy ich wartości są równe, z drugiej strony, złożone obiekty są równe wyłącznie, gdy odniesienia mają te same wartości. To znaczy: złożone wartości są sobie równe, tylko i wyłącznie, gdy obie odnoszą się do tego samego obiektu.
- W związku z naturą złożonych obiektów i odniesień, obiekty w JavaScript mają dynamiczne właściwości.
- W JavaScript właściwości wbudowanych obiektów, jak i tych stworzonych przez użytkownika mogą być manipulowane w każdym momencie.
- Wywoływanie/tworzenie/aktualizowanie właściwości obiektów jest dokonywane poprzez użycie notacji kropkowej lub nawiasowej. Notacja nawiasowa jest wygodna w sytuacji, gdy właściwość obiektu, którą chcemy manipulować jest w formie wyrażenia (np.
Array['prototype']['join'].apply()
). - Odwołując się do właściwości obiektu, łańcuch zależności najpierw sprawdza obiekt do którego właściwości się zwracamy. Jeżeli właściwości tam nie ma, szukana jest w konstruktorze funkcji we właściwości
prototype
. Jeżeli tam jej nie ma, w związku z tym, że prototyp zawiera wartość obiektu i wartość tworzona jest przy użyciu konstruktoraObject()
, właściwość szukana jest we właściwościprototype
konstruktoraObject()
(Object.prototype
). Jeżeli właściwości nie została tam znaleziona, to przypisana jest jest wartośćundefined
. - Łańcuch zależności prototype jest sposobem w jaki dziedziczenie zostało zaprojektowane w JavaScript (tzw. dziedziczenie prototypowe ).
- Poprzez łańcuch zależności właściwości (tzw. dziedziczenie prototypowe) wszystkie obiekty dziedziczą od
Object()
, ponieważ właściwośćprototype
jest sama w sobie obiektemObject()
. - Funkcje w JavaScript są obywatelami pierwszej kategorii: są obiektami i posiadają właściwości i wartości.
- Słowo-klucz
this
, użyte w środku funkcji, jest pospolitym sposobem odniesienia się do obiektu zawierającego funkcję. - Wartość
this
jest określana podczas przetwarzania, w odniesieniu do kontekstu w jakim funkcja została przywołana. - Użyte w globalnym zakresie (global scope) słowo kluczowe this odwołuje się do globalnego obiektu.
- JavaScript używa funkcji, by stworzyć unikalny zakres.
- JavaScript dostarcza globalny zakres i tam zawarty jest cały kod.
- Funkcje (zwłaszcza hermetyczne) tworzą łańcuch zakresu dla rozwiązań szukania wartości.
- Łańcuch zakresu jest ustawiony zgodnie z kodem, a niekoniecznie zgodnie z sytuacją w jakiej funkcja została przywołana. To pozwala funkcji na dostęp do zakresu, w którym funkcja była napisana, nawet jeśli zostaje przywołana w innym położeniu. Wynik jest zwany zamknięciem.
- Wyrażenia i zmienne zadeklarowane w funkcji bez użycia słowa
var
mają właściwości globalne. Jednak twierdzenia funkcji wewnątrz zakresu funkcji pozostają zdefiniowane w zakresie, w którym zostały napisane. - Funkcje i zmienne zadeklarowane (bez
var
) w zakresie globalnym stają się właściwościami obiektów globalnych. - Funkcje i zmienne zadeklarowane (z var) w zakresie globalnym stają się zmiennymi globalnymi.
Wnioski
Dziękuję za uwagę!
Advertisement
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Sign upCody Lindley is a client-side engineer (aka front-end developer) and recovering Flash developer. He has an extensive background working professionally (16+ years) with HTML, CSS, JavaScript, and client-side performance techniques as it pertains to web development. If he is not wielding client-side code he is likely toying with interface/interaction design or front-end application architecture. When not sitting in front of a computer, it's a sure bet he is hanging out with his wife & three boys in Boise, Idaho. In his spare time Cody is working towards being a "One Dollar Apologist" and enjoys defending the rational evidence for a classical Christian world-view. Currently he is working for TandemSeven as a Principal Front-End Architect.
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.