Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dostęp do obiektu utworzonego w funkcji
kazag
post
Post #1





Grupa: Zarejestrowani
Postów: 180
Pomógł: 12
Dołączył: 30.04.2007

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


Cześć,

próbuję ogarnąć obiekty w JS.

Mam sobie obiekt:

Kod
function Obiekt(name, start, time) {
    this.name = name;
    this.start = start;
    this.time = time;
    this.startCounting = function() {
            window.alert(this.name+' ma '+this.start+' lat');
        }
    return this;
}


potem niżej w $(document).ready(... mam przypisaną funkcję do kliknięcia na element, która coś tam sobie robi, a na koniec tej funkcji chciałbym stworzyć nową instancję obiektu Obiekt, robię to tak:

Kod
var ob = new Obiekt('nazwa', 0, 0);


i jeśli wtedy sobie wyalertuję ob.name (w obrębie tej funkcji, która to utworzyła), to działa, alertuję mi 'nazwa', ale chciałbym mieć dostęp do tego obiektu później, również w obrębie $(document).ready, ale w innych funkcjach. Chcę mieć kilka obiektów, ob1, ob2, ob3 i na nich dokonywać operacji po kliknięciu na inne elementy DOM. Oczywiście mogę obejść się bez obiektów, tak jak zawsze, ale chciałem to zrozumieć, a chyba gdzieś zgubiłem się w podstawowych założeniach, prawda?

Przykład:

http://jsfiddle.net/WvrtZ/

jeśli w clicku na #a2 będę chciał wyalertować ob1.name, to nic nie dostanę. Chodzi tu pewnie o zasięg. Ale w jaki sposób więc mogę utworzyć po kliknięciu na linki kolejne obiekty i potem odwoływać się do nich dalej po kliknięciu na innego linka?

Ten post edytował kazag 16.11.2012, 14:50:36
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Czytam i czytam i nie kumam o co ci chodzi.

Zaś jeśli chodzi o zasięg zmiennych to jeśli chcesz by zmienna tworzona w funkcji miała zasięg globalny to nie:
var zm = 'cos';
a:
zm = 'cos';

i już
Go to the top of the page
+Quote Post
kazag
post
Post #3





Grupa: Zarejestrowani
Postów: 180
Pomógł: 12
Dołączył: 30.04.2007

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


http://jsfiddle.net/WvrtZ/ działa (IMG:style_emoticons/default/smile.gif)

to jest normalne użycie, czy "działa bo działa"?

Cała filozofia opiera się na tym, że na początku nie mam żadnego obiektu, po starcie aplikacji user może tworzyć obiektów ile mu się zachce, wszystkie są takie same, a potem dla każdego z nich powinien móc osobno zmieniać każdą wartość i je ewentualnie usuwać. Dlatego mam formularz do tworzenia obiektu, który tworzy mi na froncie odpowiedni kontener, w nim są opcje takie jak 'zmień wartosc' i 'usun' no i chciałbym to oprzeć właśnie o obiekty.

pzdr
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




To co ci napisałem to tak jest. Tak sie określa zasięg zmiennej.
var - lokalna w obrębie funkcji
bez var - globalna

Nie wiem co mam ci więcej napisać, tym bardziej że nadal nie wiem o co ci chodzi (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
kazag
post
Post #5





Grupa: Zarejestrowani
Postów: 180
Pomógł: 12
Dołączył: 30.04.2007

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


Pomogłeś, dzięki !
Go to the top of the page
+Quote Post
acidm
post
Post #6





Grupa: Zarejestrowani
Postów: 110
Pomógł: 3
Dołączył: 12.03.2011
Skąd: Opole

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


A jeszcze ładniej zrobisz jak do zmienną globalną zadeklarujesz sobie najpierw z użyciem var a później będziesz robic co chcesz z nią .
Tworzenie zmiennej bez uzycia var działa ale sypie błedami, ogólem jak chcesz tworzyc zmienną globalną tworz ja jawnie.
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 - 09:02