Strona główna HTML i javascript C++ Hardware HTML i javascript Java Software SQL

Javascript – zmienne przechowywujące funkcje.

Dodano: 2012-02-24

Javascript oferuje pewną ciekawą możliwość, jaką jest przypisanie zmiennej istniejącą funkcję lub zdefiniowanie zupełnie nowej. Taka zmienna zawiera kod jak i również umożliwia wywołanie zachowanej w niej "instrukcji".

Zawartość takiej zmiennej można łatwo podglądnąć np poprzez użycie okna dialogowego alert(), wywołanie jej jest możliwe poprzez dodanie do zmiennej nawiasów [variableName]()

Jeżeli kiedyś będziemy musieli sprawdzać czy przekazane zmienne są funkcjami czy też innymi typami danych można to wykonać stosując słowo kluczowe typeof [variableName], jeżeli jest to funkcja to pojawi się komunikat function.

Jeżeli z jakiegoś powodu będziesz chciał wykonać sprawdzenie kodu funkcji zapisanej w zmiennej, aby korzystać z niej jak z zwykłego tekstu należy najpierw zapisać ją jako string: var temp = new String([variableName]);

Poniżej przykład, w którym jest wykonywane sprawdzenie czy przekazywany parametr jest funkcję, a jeżeli tak to pobierana jest nazwa jej.

function getNameFunctionInVariable(varFun){

	if (typeof varFun == "function"){
		var nameFun = new String(varFun);
	
		nameFun = nameFun.substr(8);
		nameFun = nameFun.substr(0, nameFun.indexOf('('));
		nameFun = nameFun.replace(/ /g, "");
		nameFun = nameFun.replace(/	/g, "");
	} else
		return varFun;
	
	return nameFun;
}

Jeżeli zapiszesz w zmiennej nazwę funkcji i chciałbyś ją wywołać w przyszłości jest to możliwe, za pomocą komendy: window[[variableName]]();