Funktionsobjekt

Danke, das Funktioniert schon so weit, da hab ich wieder was dazu gelernt ;)

Aber nun habe ich noch ein kleines Problem
HTML:
<script type="text/javascript">
<!--
test1 = function() {
	return {
		test2:function() {
			}
		};
	};

/* Hier müsste doch die Funktion überschrieben werden */
test1().test2() = function() {
	alert("hi");
	};
//-->
</script>
<input type="text" onblur="if (this.value == '') test1().test2();" id="meinelement" />
 
Aber nun habe ich noch ein kleines Problem
HTML:
<script type="text/javascript">
<!--
test1 = function() {
	return {
		test2:function() {
			}
		};
	};

/* Hier müsste doch die Funktion überschrieben werden */
test1().test2() = function() {
	alert("hi");
	};
//-->
</script>
<input type="text" onblur="if (this.value == '') test1().test2();" id="meinelement" />
Nein, die Funktion wird da nicht überschreiben. Du rufst die Funktion test1 auf, diese gibt ein Objekt mit dem Attribut "test2" zurück, welches wieder eine Funktion ist. Diese rufst du dann wieder auf, und du erhälst "undefined".

Um die Funktion test2 zu überschreiben darfst du die Funktion nicht aufrufen:
Javascript:
test1().test2 = function () { ... }
Das macht aber alles nur begrenzt Sinn. Evtl. solltest du erstmal die Grundlagen der Sprache lernen. Von Douglas Crockford gibt es sehr schöne Präsentationen :suchen:

Gruß
 
Zurück