![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 1 Dołączył: 18.09.2006 Skąd: Skarżysko Ostrzeżenie: (0%) ![]() ![]() |
Witajcie.
Zacząłem ostatnio odświeżać wiadomości o JS i zatrzymałem się na problemie, którego rozkminić nie mogę i poszukiwania w google (może nieskuteczne) nie przyniosły wyjaśnienia. Chodzi mianowicie o taki kod: function repeat(options) { options = options || {}; for (var opt in (repeat.defaultOptions || {})) { if (!(opt in options)) { options[opt] = repeat.defaultOptions[opt]; } } for (var index = 0; index < options.times; ++index) { alert(options.rant); } } repeat.defaultOptions = { times: 2, rant: 'IE6 must die!' }; rozumiem prawie całość oprócz 2 linijek: options = options || {}; (repeat.defaultOptions || {}) moje pytanie jest o co chodzi z tym || {}? Wydaje mi się, że trzeba to czytać "lub ..." ale nie wiem co dalej i jak to ugryźć. Z góry dziękuje za pomoc |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Proszę wstawić bbcode.
Oznacza, że jeżeli "cos" bedzie puste to zamiast niej będzie podstawiona wartośc jakakolwiek_inna_wartosc; W skrócie można to przetłumaczyć na
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 106 Pomógł: 18 Dołączył: 11.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Z tym lub masz racje, natomiast te klamry to definicja obiektu za pomocą JSON. Musisz też wiedzieć, że jeżeli zmienna jest undefined to wywali błąd ale kiedy obiekt nie ma danej własności(np: options.cos) to błędu już nie wywala, mało tego if(obj.undefined) bedzie false jeżeli obj.undefined == undefined/null/false/0 i true w przeciwnym wypadku.
Ten post edytował wszerad 1.11.2011, 23:07:27 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 1 Dołączył: 18.09.2006 Skąd: Skarżysko Ostrzeżenie: (0%) ![]() ![]() |
Oki, super dzięki.
Więc tak: oznacza do zmiennej options przypisz to co przychodzi z parametru lub ustal na pusty obiekt JSON, tak? a ten drugi: oznacza, że do opt w każdym kroku przypisuje klucz z repeat.defaultOptions lub tworze pusty obiekt? No ale kiedy w takim przypadku opt będzie pustym obiektem JSON? |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Nie. Najpierw decyduje czy iterować po pustym obiekcie czy też po repeat.defaultOptions;
Iteracja po pustym obiekcie = 0 wykonań kodu w bloku for (IMG:style_emoticons/default/smile.gif) Zrób coś takiego
i zobacz rezultaty.
Powód edycji: [wookieb]:
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 1 Dołączył: 18.09.2006 Skąd: Skarżysko Ostrzeżenie: (0%) ![]() ![]() |
Super dzięki wielkie, już pojąłem (IMG:style_emoticons/default/smile.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 19:11 |