Hallo Uschi,
Erkenntnistheorie, und zwar im vorliegenden Fall platonische Ideenlehre.
Gut erkannt - den Platon hatte ich tatsaechlich im Hinterkopf dabei ;-)
Ein Problem in der Programmierdidaktik ist nämlich sicherlich, daß immer davon ausgegangen wird, die Adressaten der Handbücher seien fit in Mathe.
Das ist wahr. Denn meistens kommen oder kamen die typischen Programmierer eben auch aus dieser Ecke, und wer in die Tiefen der Programmierung einsteigt, wird um algorithmenorientiertes Denken auch nicht drumherum kommen. Aber gerade heute, wo Millionen Leute im Zuge der Webseitenerstellung so am Rande ein wenig mit Programmierung in Beruehrung kommen, ist es tatsaechlich wichtig, auch andere Zugaenge zu dieser Materie zu schaffen.
Was meinst du, wie lange ich gebraucht habe, um zu realisieren, daß der Variablenname i ein solcher ist, und nicht etwa integraler Bestandteil einer for-Schleife.
Ich weiss - das sind jene "Selbstverstaendlichkeiten", die in fast keiner Doku zu Programmiersprachen-Doku drinstehen.
Kann man sagen, daß es sich bei
Bild = new Image();
Bild.src = "datei.gif";
um die Instanz eines Objekts handelt, auf die noch nicht Bezug genommen wurde?
Sagen wir so: mit dem ersten Befehl wird die Objektinstanz erzeugt. Mit dem zweiten Befehl wird bereits darauf Bezug genommen. Aber wenn man nun sagt:
document.images[0].src = Bild.src;
Dann wird da auch auf eine Instanz des Image-Objekts Bezug genommen, aber auf eine, die nicht mit JavaScript erzeugt wurde, sondern bereits da ist, weil es eine Grafik in der HTML-Datei gibt, die mit <img src="irgendwas.gif"> notiert ist.
Aber was habe ich erzeugt, wenn ich irgendwo weiter unten schreibe
guterFreund = new friends("Nepomuk", "Schnibbeldick", "103");
Eine Instanz der Idee function oder eine Instanz der Instanz friends? Oder beides?
Das seltsame Konstrukt mit dem this.name = name ist wirklich ziemlich platonisch. Es ist halt die programmiersprachentechnische Konvention, um Objekte als solche zu deklarieren. Der JavaScript-Interpreter weiss dadurch, dass es fuer ihn ein Objekt mit diesem Namen (friends) gibt, das verschiedene Eigenschaften hat (vorname, nachname, alter). Mit:
guterFreund = new friends("Nepomuk", "Schnibbeldick", "103");
erzeugst du eine Instanz dieses Objekts. Genauso wie du mit:
Bild = new Image()
eine Instanz eines Objekts erzeugst. Der Unterschied ist nur, dass das Image-Objekt in JavaScript bereits vordefiniert ist, waehrend du dir das friends-Objekt mit dem seltsamen Konstrukt selber definiert hast.
Gibt es irgendwo eine Liste, was hinter new an Vorgefertigtem alles kommen kann.
Nun ja, ich vreweise dich mal kleinlaut auf <../../tec.htm> und bitte dich, einfach mal alle Seiten dort zu oeffnen und mal von allen Dateien das zu lesen, was bei den "Hinweisen zum Objekt" jeweils steht. Dann wirst du langsam drauf kommen ;-)
Und noch was, irgendjemand möge dem Valligator ein paar Zähnchen ziehen. Ohne Umbruch bringt wenig Punkte. Haust Du ihm von mir aufs Haupt? Ganz fest?
Dafuer ist unser PAF zustaendig ;-)
viele Gruesse
Stefan Muenz