Einstieg in OOP
Kalle_B
- javascript
Hallöle,
ich möchte mehrere kleine grafische Elemente unabhängig voneinander auf der Seite bewegen. Das ist doch sicher ein Fall für objektorientierte Programmierung.
Für jedes Objekt ist zu speichern:
X- und Y- Position,
Richtung,
Schrittweite,
Intervall.
Dann ist pro Intervall die nächste Position zu errechnen und das Objekt neu anzuzeigen.
Habe schon mal mit vorgefertigten Objekten experimentiert:
objAjax = new ActiveXObject("Microsoft.XMLHTTP");
Habe aber keine Ahnung, wie ActiveXObject von innen aussieht.
Wer nennt mir ein Beispiel für die Definition (oder heisst es Deklaration?) eines Javascript- Objekts?
22:23 - es ist dunkel im Odenwald. Kalle
Hi,
Für jedes Objekt ist zu speichern:
X- und Y- Position,
Richtung,
Schrittweite,
Intervall.
na, dann kennst Du ja schon mal die Eigenschaften, die das Objekt haben muss.
Habe schon mal mit vorgefertigten Objekten experimentiert:
objAjax = new ActiveXObject("Microsoft.XMLHTTP");
Das ist erstens ein sehr spezielles Objekt, welches zweitens mit Deinem Problem nichts zu tun hat und drittens IE-only ist.
Habe aber keine Ahnung, wie ActiveXObject von innen aussieht.
Uninteressant. Du musst nur wissen, wie Object von innen aussieht: Leer.
Wer nennt mir ein Beispiel für die Definition (oder heisst es Deklaration?) eines Javascript- Objekts?
Es heißt "Prototype". Zumindest das Stichwort, welches Dich weiter bringt.
22:23 - es ist dunkel im Odenwald. Kalle
22:33 - mal sehen, wie es im Wald von Elwynn aussieht.
Cheatah
Hi, Cheatah,
danke für das Stichwort Prototype.
Habe da was gefunden: http://demo.script.aculo.us/scripts/prototype.js
Scheint eher für Fortgeschrittene zu sein, ich verstehe nur "Bahnhof".
Bin noch immer auf der Suche nach einem einfachen Objekt.
Kalle
Hallo Kalle_B.
Habe da was gefunden: http://demo.script.aculo.us/scripts/prototype.js
Scheint eher für Fortgeschrittene zu sein, ich verstehe nur "Bahnhof".
Um obigen Klumpen habe ich bisher ebenfalls erfolgreich einen großen Bogen gemacht.
Vielleicht helfen dir die erläuternden Worte im Developer-Bereich auf der Mozilla-Site ein wenig weiter.
Einen schönen Montag noch.
Gruß, Ashura
danke für das Stichwort Prototype.
aber falsch gesucht.
Habe da was gefunden: http://demo.script.aculo.us/scripts/prototype.js
Das ist lediglich ein Framework, dass sich so nennt.
Scheint eher für Fortgeschrittene zu sein, ich verstehe nur "Bahnhof".
kommt drauf an, ich benutze es nicht, aber ich denke es vereinfacht viel.
Bin noch immer auf der Suche nach einem einfachen Objekt.
Das ist ein einfaches Objekt:
function Objekt(){}
var o = new Object();
Das ganze ist nicht einfach, in selfhtml ist ein kurzer Anriss wie man Objektorientiert mit JS programmiert http://de.selfhtml.org/javascript/sprache/objekte.htm#eigene
aber das ist wirklich nur ganz wenig (es fehlt z.b. auch die von Cheatah erwähnte protoype Eigenschaft)
http://www.javascriptkit.com/javatutors/oopjs.shtml
ein gutes teutsches Tutorial hab ich nicht auf die schnelle gefunden, dei meisten sind Mist.
Struppi.
Hi Cheatah!
22:33 - mal sehen, wie es im Wald von Elwynn aussieht.
_Du_ spielst? Das hätte ich nicht von dir gedacht. *kopfschüttel* ;-)
MfG H☼psel
Hi,
22:33 - mal sehen, wie es im Wald von Elwynn aussieht.
_Du_ spielst? Das hätte ich nicht von dir gedacht. *kopfschüttel* ;-)
spielen? Ich evaluiere Netzwerkprotokolle.
Cheatah ;-)
Grundlage für Zitat #358.
Hi Cheatah!
_Du_ spielst? Das hätte ich nicht von dir gedacht. *kopfschüttel* ;-)
spielen? Ich evaluiere Netzwerkprotokolle.
Und bezahlst auch noch Geld dafür. -.-
[dsf 1.13]
MfG H☼psel
Hi,
_Du_ spielst? Das hätte ich nicht von dir gedacht. *kopfschüttel* ;-)
spielen? Ich evaluiere Netzwerkprotokolle.
Und bezahlst auch noch Geld dafür. -.-
Weiterbildung kostet nun mal.
[dsf 1.13]
[dsf 4.11]
Cheatah
Hi Cheatah!
Weiterbildung kostet nun mal.
Nichtsdestotrotz hätte ich niemals von dir gedacht, dass du mir nochmal so sympatisch wirst. ;-)
Wie dem auch sei...
[dsf 2.8]
MfG H☼psel
Hi,
Nichtsdestotrotz hätte ich niemals von dir gedacht, dass du mir nochmal so sympatisch wirst. ;-)
nun, niemand ist frei von Fehlern ;-)
[dsf 2.8]
[dsf 3.1]
Cheatah
yo,
nun, niemand ist frei von Fehlern ;-)
ich würde einfach das wort "Fehlern" mit "Menschlichkeit" ersetzen.
Ilja
Hi Ilja!
nun, niemand ist frei von Fehlern ;-)
ich würde einfach das wort "Fehlern" mit "Menschlichkeit" ersetzen.
Ähm... Es geht um Cheatah!
scnr ;-)
MfG H☼psel
yo,
Ähm... Es geht um Cheatah!
genau deswegen sollte dort Menschlichkeit stehen.
Ilja
Hi Ilja,
Ähm... Es geht um Cheatah!
genau deswegen sollte dort Menschlichkeit stehen.
Weil er sich zum Zwecke des zeitkillenden Computerspielens an eine Maschine andockt und glaubt, er sei eine Nachtelfe oder ein Gnom?
Viele Grüße
Mathias Bigge
Hi Mathias!
Ähm... Es geht um Cheatah!
genau deswegen sollte dort Menschlichkeit stehen.
Weil er sich zum Zwecke des zeitkillenden Computerspielens an eine Maschine andockt und glaubt, er sei eine Nachtelfe oder ein Gnom?
Troll! :-)
Desweiteren hoffe ich nicht, dass nicht alle Menschen Computerspiele als zeitkillend empfinden. Schließlich möchte ich damit später mein Geld verdienen.
MfG H☼psel
Hi Hopsel,
Ähm... Es geht um Cheatah!
genau deswegen sollte dort Menschlichkeit stehen.
Weil er sich zum Zwecke des zeitkillenden Computerspielens an eine Maschine andockt und glaubt, er sei eine Nachtelfe oder ein Gnom?
Troll! :-)
Desweiteren hoffe ich nicht, dass nicht alle Menschen Computerspiele als zeitkillend empfinden. Schließlich möchte ich damit später mein Geld verdienen.
Sie empfinden es nicht so, höchstens beim Kater danach oder wenn die Frau weggelaufen ist, weil sie den wertguten Gamer nur noch von hinten kennt, sonst würden sie ja nicht Stunden damit verbringen, aus der Realität in künstliche, anders als unsere von ständigen Gemetzeln exotischer Allianzen bedrohte Welten abzutauchen! Deiner Zukunft als Top-Spieleprogrammierer steht also nichts im Wege, außer Du verlierst Dich selbst allzulange im Dickicht der virtuellen Kriege. Das mit der Frau lösen die erfahrensten Krieger, wie undichte Quellen verbreiten, indem sie sie selber mitkämpfen lassen... *g*
Meine aktuelle Computersucht heißt übrigens Wikipedia, ein Projekt, das zum Genre der Nervenkriege gehört und damit perfekter als Warcraft auf das spätere Eheleben vorbereitet oder an das vergangene erinnert...
Viele Grüße
Mathias Bigge
Hi Mathias!
Desweiteren hoffe ich nicht, dass nicht alle Menschen Computerspiele als zeitkillend empfinden. Schließlich möchte ich damit später mein Geld verdienen.
Sie empfinden es nicht so [...] Deiner Zukunft als Top-Spieleprogrammierer steht also nichts im Wege, außer Du verlierst Dich selbst allzulange im Dickicht der virtuellen Kriege.
Ich würde sagen, ich habe einen gesunden Mittelweg gefunden. :-)
Das mit der Frau lösen die erfahrensten Krieger, wie undichte Quellen verbreiten, indem sie sie selber mitkämpfen lassen... *g*
Und ich verlier doch so ungern...
Meine aktuelle Computersucht heißt übrigens Wikipedia, ein Projekt, das zum Genre der Nervenkriege gehört und damit perfekter als Warcraft auf das spätere Eheleben vorbereitet
Das glaube ich dir. :)
oder an das vergangene erinnert...
Da ist wohl was schief gelaufen... :(
MfG H☼psel
yo,
Weil er sich zum Zwecke des zeitkillenden Computerspielens an eine Maschine andockt und glaubt, er sei eine Nachtelfe oder ein Gnom?
ich würde sagen weil er trotz aller weltlicher und ausserweltlicher fähigkeiten immer noch ein mensch bleibt.
Ilja
Hallo Hopsel und Cheatah,
[dsf 1.13]
Ihr habt an euren Posts immer [dsf x.yy] dranstehen, darf der nicht ohweoweler mal fragen was das heißt?
Danke.
B-ellanna
Hi B!
[dsf 1.13]
Ihr habt an euren Posts immer [dsf x.yy] dranstehen, darf der nicht ohweoweler mal fragen was das heißt?
Das hat gar nichts mit einem Spiel zu tun, sondern gehört zur Netzkultur.
Danke.
Bitte. ;-)
MfG H☼psel
Das hat gar nichts mit einem Spiel zu tun, sondern gehört zur Netzkultur.
Hallo Hopsel.
[dsf 4.7]
B-ellanna
Hallo,
Das hat gar nichts mit einem Spiel zu tun, sondern gehört zur Netzkultur.
[dsf 4.7]
[dsf 3.6]
*scnr*
Martin
你好 Cheatah,
22:33 - mal sehen, wie es im Wald von Elwynn aussieht.
RCK? ;))
再见,
克里斯蒂安
Hi,
Wer nennt mir ein Beispiel für die Definition (oder heisst es Deklaration?) eines Javascript- Objekts?
Du brauchst einen Konstruktor, in dem Du Eigenschaften und Methoden festlegst, hier z.B. Farbänderung und Ausgabe per alert. Diese sind nur innerhalb des Objektes bekannt.
// konstructor
function myObj() {
this.color = "red"; // eigenschaft farbe
this.changeColor = changeColor; // methode definieren
this.alertColor = alertColor;
}
// methode farbe ändern
function changeColor(color) {
this.color = color;
}
// methode farbe ausgeben
function alertColor() {
alert(this.color);
}
Jetzt erzeugst Du eine Instanz und wendest die Methoden auf diese Instanz an:
var obj = new myObj();
obj.alertColor();
obj.changeColor('green');
obj.alertColor();
Gruesse, Joachim
... dein Beispiel ist gut verständlich.
Hier noch so ein einfaches Beispiel: http://www.javascriptkit.com/javatutors/oopjs2.shtml
Kalle
Hier noch so ein einfaches Beispiel: http://www.javascriptkit.com/javatutors/oopjs2.shtml
(von Struppi)
... dein Beispiel ist gut verständlich.
Man kann es zwar so machen, aber du soltest lieber mit prototype arbeiten. In dem Beispiel hast du unnötige Globale Funktionen. Methoden, innerhalb der Konstruktorfunktion sind privielgierte Methoden die Zugriff auf private Eiegnschaften haben, das ist hier aber nicht nötig.
So sähe das Beispiel mit prototype aus:
// Konstruktorfunktion
function myObj() {
this.color = "red"; // Eigenschaft Farbe
}
// Methode Farbe ändern
myObj.prototype.changeColor = function (color)
{
this.color = color;
}
// Methode Farbe ausgeben
myObj.prototype.alertColor = function() {
alert(this.color);
}
Hier noch so ein einfaches Beispiel: http://www.javascriptkit.com/javatutors/oopjs2.shtml
Die Links von wahsaga, sind nochmal präziser. Allerdings muss man dann auch eine Ahnung von OOP haben.
Struppi.
Hallo Struppi,
// Konstruktorfunktion
function myObj() {
this.color = "red"; // Eigenschaft Farbe
}// Methode Farbe ändern
myObj.prototype.changeColor = function (color)
{
this.color = color;
}// Methode Farbe ausgeben
myObj.prototype.alertColor = function() {
alert(this.color);
}
spricht eigentlich etwas gegen
~~~javascript
// Konstruktorfunktion
function myObj() {
this.color = "red"; // Eigenschaft Farbe
// Methode Farbe ändern
this.changeColor = function (color)
{
this.color = color;
}
// Methode Farbe ausgeben
this.alertColor = function() {
alert(this.color);
}
}
bzw. was ist der Unterschied zwischen der Definition der Methoden im Objekt und über prototype?
Gruß, Jürgen
spricht eigentlich etwas gegen
Grundsätzlich nicht, wie gesagt, wennn du die Seiten die dir wahsaga gezeigt hat gelesen hast verstehst du den Unterschied.
bzw. was ist der Unterschied zwischen der Definition der Methoden im Objekt und über prototype?
Das eine sind Methoden, die auf private Mitglieder zugreifen können und müssen ausserdem bei jedem neuen Objekt neu erzeugt werden.
function obj1()
{
this.func = function() {; }
}
obj1.prototype.func2 = function() { ; }
var o1 = new obj1();
var o2 = new obj1();
alert( o1.func === o2.func); // = false
alert( o1.func2 === o2.func2); // = true
und um zu verstehen ob du private, privliegierte oder public Methoden/Attriobute verwendest solltest (nochmal der Hinweis auf die Links von wahsaga, wo der unterschied erklärt wird), musst du natürlich Kenntnisse über OOP haben.
Struppi.
Hallo Struppi,
danke. Die Seiten von wahsaga werde ich sicher irgendwann lesen müssen. Aber für jemanden, dar das Programmieren noch mit Fortran gelernt hat, ist OOP schon eine fremde Welt.
Dein Hinweis
... und müssen ausserdem bei jedem neuen Objekt neu erzeugt werden.
überzeugt mich aber davon, besser mit prototype zu arbeiten.
Gruß, Jürgen
danke. Die Seiten von wahsaga werde ich sicher irgendwann lesen müssen. Aber für jemanden, dar das Programmieren noch mit Fortran gelernt hat, ist OOP schon eine fremde Welt.
ich hatte gar nicht mitbekommen dass hier ein "userwechsel" stattfand ;-)
Ging natürlich in erster Linie an Karl.
Struppi.
hi,
wenn du einen Einstieg in OOP in Javascript suchst, sind neben CKs Feature-Artikel Objekt-Handling in JavaScript auch OOP in JS, Part 1 : Public/Private Variables and Methods und OOP in JS, Part 2 : Inheritance m.E. sehr empfehlenswert (sind allerdings in Englisch).
Und im Eintrag zu Javascript in der Wikipedia steht auch noch'n bisschen was dazu.
gruß,
wahsaga
Hallo wahsaga.
Und im Eintrag zu Javascript in der Wikipedia steht auch noch'n bisschen was dazu.
Und sogleich beweist man mir das Gegenteil meiner Behauptung.
Einen schönen Montag noch.
Gruß, Ashura