Object.prototype.valueOf()

Die valueOf() Methode liefert den primitiven Wert des spezifizierten Objekts zur├╝ck.

Syntax

object.valueOf()

R├╝ckgabewert

Der primitive Wert des spezifizierten Objekts.

Beschreibung

JavaScript ruft die valueOf Methode auf, um das Objekt zu einem primitiven Wert zu konvertieren. Nur in seltenen F├Ąllen ist es n├Âtig, selbst die valueOf Methode aufzurufen; JavaScript tut dies automatisch dann, wenn es ein Objekt vorfindet und ein primitiver Wert erforderlich ist.

Standardm├Ą├čig erbt jedes Objekt die valueOf Methode von Object. Jedes built-in core object ├╝berschreibt zudem diese Methode, um jeweils den geeigneten Wert zu liefern. Falls ein Objekt keinen primitiven Wert haben sollte, liefert valueOf das Objekt selbst zur├╝ck.

Die Methode valueOf kann in eigenem Code verwendet werden, um etwa ein built-in object in seinen primitiven Wert zu wandeln. Bei der Implementierung eines eigenen Objekttyps sollte die Methode Object.prototype.valueOf() entsprechend ├╝berschrieben werden, anstelle der standardm├Ą├čig durch Object bereitgestellten Methode.

├ťberschreiben von valueOf f├╝r eigene Objekttypen

Es ist m├Âglich eine function zu implementieren, welche anstelle der standardm├Ą├čig bereit gestellten valueOf Methode aufgerufen wird. Diese empf├Ąngt und ben├Âtigt keine Argumente.

Angenommen, in einem Projekt gibt es den Objekttyp MyNumberType und f├╝r diesen soll nun eine passende valueOf Methode implementiert werden. Der folgende Code zeigt wie mit einer function die valueOf Methode des Typs implementiert wird:

MyNumberType.prototype.valueOf = function() { return customPrimitiveValue; };

Mit Hilfe dieses Codes wird JavaScript automatisch diese Funktion aufrufen, sobald ein Objekt des Typs MyNumberType in einem Kontext steht, wo es als primitiver Wert ben├Âtigt wird.

Die Methode valueOf eines Objekts wird ├╝blicherweise nur von JavaScript selbst aufgerufen, kann aber ebenso wie folgt jederzeit aufgerufen werden:

myNumberType.valueOf()

Wichtig: Objekte in String-Kontexten werden ├╝ber die Methode toString() zu String umgewandelt, was etwas anderes ist als ein String Objekt welches ├╝ber valueOf zum string primitive konvertiert wird. Alle Objekte haben eine M├Âglichkeit, zu einem String konvertiert zu werden, selbst wenn dies lediglich resultiert in "[object type]". Die meisten Objekte hingegen k├Ânnen nicht gewandelt werden zu number, boolean, oder function.

Beispiele

Verwendung von valueOf

function MyNumberType(n) {
    this.number = n;
}

MyNumberType.prototype.valueOf = function() {
    return this.number;
};

var myObj = new MyNumberType(4);
myObj + 3; // 7

Spezifikationen

Browser Kompatibilit├Ąt

BCD tables only load in the browser

Siehe auch