Zugriff zwischen Klassen
Rey003
- javascript
0 molily
Ich hab folgendes Problem und zwar sind meine Variablen alle leer wenn ich von einer Klasse auf eine andere zugreife. Ich bin ziemlicher Neuling in der Hinsicht!
Hier mal der Code:
// PicViewer-Class
function PicViewer(viewer_height,viewer_width,viewer_loadpic_src) {
this.viewer_height = viewer_height;
}
var thisclass = PicViewer.prototype;
thisclass.Show = function(pic_title,pic_src,pic_desc){
this.pos_windows1();
window.onscroll = function() {
thisclass.pos_windows1();
}
}
thisclass.pos_windows1 = function() {
alert(this.viewer_width);
}
Der Alert die liefert immer undefiniert zurück, wenn die Function beim Scrollen aufgerufen wird.
Wisst ihr wie man richtig zwischen Klassen kommuniziert?
Ich hoffe ihr könnt mir helfen!
Mfg Rey003
Hallo,
Klassen gibts in JavaScript nicht und ich sehe bei dir auch nur einen Konstruktor.
Die prototype-Eigenschaft ist nur interessant für Erweiterung aller Instanzen. Ein Aufruf einer Methode über den Prototyp (thisclass.pos_windows1()) ist wenig sinnvoll, weil this darin auf das prototype-Objekt und nicht auf die Instanz zeigt. Und das Prototyp-Objekt hat nunmal keine derartige Eigenschaft.
Du kannst z.B. in der Show-Methode eine Variable anlegen, die auf die Instanz zeigt (var self = this;) und dann im onscroll-Handler auf self zugreifen (durch den Closure-Effekt).
Lies dir mal das durch:
http://aktuell.de.selfhtml.org/artikel/javascript/organisation/#methoden-eigener-objekte-und-kontext
Mathias