Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyjaśnienie skryptu - wartość lub {}
esp
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wszerad
post
Post #2





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.
  1. //{} == new Object();
  2. var obj = {name : 'Adam', old : 14};
  3. obj.old == 14;
  4.  
  5. var zmienna = cos || jakakolwiek_inna_wartosc; //jak napisałem wyżej wywali tu błąd i kod nie będzie dalej wykonywany jeżeli cos będzie niezdefiniowane dlatego wookieb może wprowadzać w błąd
  6. var zmienna = true || 9; //zmienna == true
  7. var zmienna = false || 9; //zmienna == 9




Ten post edytował wszerad 1.11.2011, 23:07:27
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 29.12.2025 - 12:32