@Gandhi: Das seh ich wiederum als ein ganz anderes Thema.
Warum stellt man Fragen in ein Forum und versucht es nicht selbst herauszufinden
Schließlich ist der uns allen eigene Verstand für diese Aufgabenstellungen turing-complete.
Objekt-Orientierung kann durchaus die Arbeit erleichtern.
JavaScript ist aber keine klassen-basierte OO-Sprache sondern eine prototype basierte OO-Sprache.
Und das Verständnis solcher konzeptionellen Feinheiten sind nicht unbedingt akademisch, sondern können die Arbeit erleichtern.
So basiert die erfolgreiche und nicht unbedingt so irrsinnig zeitaufwendige Lösung des Problems in diesen Thread (
http://atnotes.de/index.php/topic,52899.0.html) auf Polymorphismus und den Pattern Inversion-of-Control/Dependancy Injection, Command und Factory Method. Neben dem es DANN AUCH TUN.
Das ist jetzt keine persönliche Kritik. Man MUSS SICH NICHT um das Verständnis der Konstruktionspläne einer Programmiersprache bemühen, um sie benutzen zu können. Alles was ich sage ist: Es kann die Arbeit erleichtern.
Wenn der Fragesteller da empirisch vorgeht und es einfach ausprobiert, ist das völlig i.O.. Man kann aber auch Crockford, Douglas, JavaScript: The Good Parts, O'Reilly 2008, ca. 150 Seiten lesen und nach ein bischen Kopfe-Schmerzen verstehen, warum es funktioniert wie es funktioniert.
Kurzes Beispiel was mit Prototype basiertem OO möglich ist. Erweiterung des String Prototypes von JavaScript.
<html>
<head>
<script>
String.prototype.contains = function(it) { return this.indexOf(it) != -1; };
function containsText(needle, stack) {
if (stack.contains(needle)) {
return stack + " contains " + needle;
} else {
return stack + " does not contain " + needle;
}
}
</script>
</head>
<body>
<form>
<input type="button" value="needle=weih, stack=weihnachten" onClick="alert(containsText('weih', 'weihnachten'))"/>
<input type="button" value="needle=ostern, stack=weihnachten" onClick="alert(containsText('ostern', 'weihnachten'))"/>
</body>
</html>
Kommentiert dann mal diese Zeile aus:
String.prototype.contains = function(it) { return this.indexOf(it) != -1; };
... und versucht es nochmal.
Gruß Axel