return new String(str)
Gibt das fürchterlich komplizierte Objekt vom Typ String zurück.
return String(str)
Gibt etwas vom krass einfachen Datentyp String zurück. Du kannst Dich mit
console.log(typeof(new String(5.3)));
console.log(typeof(String(5.3)));
überzeugen:
object
string
Der Datentyp "string" ist ein primitiver Datentyp. Er hat keine Methoden, ist nur ein Zeiger auf einen Speicherbereich mit raw-Daten und bietet einen schnellen wahlfreien Zugriff.
Wird auf den primitiven String eine der Methoden oder Eigenschaftsabfragen des Objekts String angewendet, dann wrappt (boxt, ummmantelt) JS zur Laufzeit die Daten in ein Objekt.
Richtig interessant ist übrigens:
console.log( typeof( new String(5.3) ) );
console.log( typeof( new String(5.3).replace('.', ',') ) ) ;
Ups:
object
string
Das JS als Ergebnis der Anwendung einer Methode auf ein String-Objekt einen String (und nicht das Objekt) zurückliefert sollte Dir zu denken geben. Etwas anderes kann gelten, wenn Du unbedingt ein Objekt brauchst:
o = new String(5.3);
o.foo = 'bar';
console.log(o);
Das dürfte aber eher selten sein.
Noch was:
String.prototype.decToGerman = function() {
return this.replace('.', ',');
}
o = new String(5.3);
console.log( o.decToGerman() );
o = String(5.3);
console.log( o.decToGerman() );
(Achte auf die Kommas)
5,3
5,3
Ich denke, die Entscheidung fällt jetzt leicht.