Lieber mb,
das Schlüsselwort "this" hat je nach Kontext ganz andere Bedeutungen. Es bezieht sich innerhalb der Funktion, die Du dem setTimeout als ersten Parameter übermittelst, auf das window-Objekt. Die Variable "this" ist daher dort eine völlig andere, als noch zuvor im Scope der fading-Methode.
Hier ist eine übliche Lösung:
Function Fade (elem, array, ms) {
// Variable
this.elem = elem; // Bild
this.array = array; // URLs
this.ms = ms; // Milisekunden
// Methods
this.fading = function () {
var count = 0;
var that = this; // für den setTimeout-Kontext später
var stepping = window.setTimeout(function () {
// that != this!
that.elem.style.backgroundImage = that.array[count];
// [...]
}, this.ms);
};
}
Warum willst Du den Rückgabewert von setTimeout speichern? Die übermittelte Funktion wird eh nur einmal ausgeführt! Da lohnt es sich ja kaum, den timeout wieder zu löschen! Dazu verwendest Du clearTimeout() ohne irgendeine Angabe (das müsste clearTimeout(stepping) heißen!), was mich zu der Frage bringt, was Du da eigentlich tust.
Liebe Grüße,
Felix Riesterer.