![]() |
![]() |
![]() ![]()
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 |
|
|
![]() |
![]()
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ż |
|
|
![]()
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 |
|
|
![]()
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) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 180 Pomógł: 12 Dołączył: 30.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Pomogłeś, dzięki !
|
|
|
![]()
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. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 09:02 |