[JS] Błąd składni prostego skryptu i dostęp do zmiennych

0

Cześć,

Temat w zasadzie poruszający dwie kwestie. W pierwszej - mam skrypt:

var component = function()
{
	return
	{
		hello: function()
		{
			alert("Hello world!");
			return true;
		}
	};
}();

zapisany w pliku component.js. Dołączam go do strony przez tag <script />. W ciele strony chcę wywołać hello przez użycie:
<a href="javascript:component.hello();">Example</a>

W tym miejscu skucha, nie działa. IE krzyczy, że nie mam zdefiniowanej zmiennej component. Stąd też druga sprawa, czy definiując zmienną w innym pliku i dołączając ją przez <script /> nie mam dostępu do tej zmiennej?

Poproszę Was o pomoc.

0

Jak się przyjrzysz dokładnie, to zobaczysz, że obiekt component nie jest obiektem stricte, tylko funkcją ( która zwraca pewien obiekt ).
A więc, żeby dostać się do tego obiektu, używasz po prostu wywołania funkcji component(). W tym zwróconym obiekcie masz dopiero taki klucz jak hello, więc robisz component().hello. Ostatecznie, jako, że hello jest funkcją, używasz component().hello(). To może być przyczyną, dlaczego skrypt Ci nie działa.

IE krzyczy, że nie mam zdefiniowanej zmiennej component. Stąd też druga sprawa, czy definiując zmienną w innym pliku i dołączając ją przez <script /> nie mam dostępu do tej zmiennej?
Aby zmienna była dostępna, musisz zadeklarować ją wcześniej niż używasz. Czyli najpierw element <script> zawierający plik ze skryptem, który podałeś, a dopiero następnie wywołanie w kodzie html. Druga sprawa, widoczność zmiennej. W JS mogą być zmienne globalne i lokalne. Deklaracja zmiennej bez słówka var powoduje, że ona jest globalna wszędzie. Poczytaj na ten temat, o tym napisano całe tomy, google też wie ;)

0

W przypadku problemow z kodem js polecam uzywanie firefoxa razem z pluginem firebug - umozliwia podglad, debugowanie czy uruchamianie kodu js (ale rowniez css i html).

1 użytkowników online, w tym zalogowanych: 0, gości: 1