Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Tworzenie obiektów
vived7
post
Post #1





Grupa: Zarejestrowani
Postów: 56
Pomógł: 1
Dołączył: 29.01.2009

Ostrzeżenie: (0%)
-----


Witam!
Mam pytanko. Załóżmy że w jednej zmiennej np. a mam nazwę obiektu który chcę stworzyć. Moje pytanie brzmi, jak stworzyć ten obiekt by miała nazwę taką jaką wybrałem
  1.  
  2. var a = "myNewClassName";
  3. //tu chcę jakoś zdefiniować obiekt
  4.  


Ten post edytował vived7 12.02.2014, 15:31:20
Go to the top of the page
+Quote Post
Damonsson
post
Post #2





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


[JAVASCRIPT] pobierz, plaintext
  1. var a = "myNewClassName";
  2. window.a.some = 2;
[JAVASCRIPT] pobierz, plaintext


edit:
Albo tak, skoro to obiekt, o ile nic nie pomyliłem:
[JAVASCRIPT] pobierz, plaintext
  1. var a = "myNewClassName";
  2. eval(a + ".some" = '2'");
[JAVASCRIPT] pobierz, plaintext


Ten post edytował Damonsson 12.02.2014, 15:45:51
Go to the top of the page
+Quote Post
PrinceOfPersia
post
Post #3





Grupa: Zarejestrowani
Postów: 717
Pomógł: 120
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----


metoda z window bardziej poprawna, tylko że machnąłeś się Damonsson nie tak
Cytat
var a = "myNewClassName";
window.a.some = 2;

(nie zadziała w ten sposó(IMG:style_emoticons/default/cool.gif)
tylko z nawiasami kwadratowymi:
Cytat
var a = "myNewClassName";
window[a] = {}; // inicjalizacja obiektu o nazwie tej, która jest podana w a ("myNewClassName")
window[a].some = 2;

alert(myNewClassName.some);

tak powinno zadziałać: http://jsfiddle.net/C66Nb/

właściwości obiektu window działają jak zmienne globalne, jeżeli o to ci chodzi vived7 (jeżeli chcesz zrobić zmiennę globalną o danej nazwie).
jeśli to ma być zmienna lokalna, to najlepiej stworzyć obiekt nadrzędny, który będzie działał jak taka tablica asocjacyjna czy przestrzeń nazw, a potem dodawać do niego obiekty.
Kod
var nameSpace = {};  
var objectName = "myNewClassName";
nameSpace[objectName] = {}; // utworzenie obiektu nameSpace.myNewClassName
alert(nameSpace.myNewClassName);

http://jsfiddle.net/C66Nb/1/

Ten post edytował PrinceOfPersia 12.02.2014, 19:09:32
Go to the top of the page
+Quote Post
Damonsson
post
Post #4





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Tak coś czułem, że mogłem namieszać, a nie miałem czasu sprawdzić (IMG:style_emoticons/default/tongue.gif)

Ale już wyjaśnione rzeczowo co i jak, więc koledze wyżej należy się bardziej pomógł niż mi.
Go to the top of the page
+Quote Post

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: 23.08.2025 - 02:20