[ascoders] Re: valueOf vs toString


> valueOf wird immer dann aufgerufen, wenn der Wert des
> Objekts verlangt ist.

Sowas wie: objA * objB ?

Wahrscheinlich.
Danke.

Sowas könntest du z.B. bei Spielen verwenden :o)

Wenn du z.B. eine Level-Klasse hast, kannst du (wie oben) mit den Objekten rechnen. Oder du könntest einfach überprüfen, ob zwei Zeiten (Date-Objekte) oder Level-Objekte vom Wert gesehen gleich sind (auch wenn die Objekte unterschiedlich sind!).

In Java gibt es für solche Vergleiche die Object.equals(Object) Methode:

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#equals(java.lang.Object)

--------------------------------------------------------------

// Eigene Level-Klasse
function Level(level) {
        this.level = level;
}

var levelA = new Level(10);
var levelB = new Level(10);

trace(levelA == levelB); // false
trace(levelA.valueOf() == levelB.valueOf()); // false
trace(levelA * levelB); // NaN

// Implementiere valueOf()-Methode
Level.prototype.valueOf = function() {
                return this.level;
};

trace(levelA == levelB); // false
trace(levelA.valueOf() == levelB.valueOf()); // true
trace(levelA * levelB); // 100

-------------------------------------------------------------

Was haltet ihr eigentlich von dem Boolean-valueOf()-Beispiel in der AS-Referenz?

ralf ...


------------------------------------------------------------- Ralf Siegel - Freelance Developer Recommended Listening: Blonde Redhead - Misery Is A Butterfly http://www.blonde-redhead.com -------------------------------------------------------------

------------------------------------------------------
Archiv   : http://www.freelists.org/archives/ascoders/
Optionen : http://www.freelists.org/list/ascoders
------------------------------------------------------

Other related posts: