String().split() oder String.prototype.split()

07/01/2014 - 10:56 von Sascha Hüdepohl | Report spam
Hallo,

grade hànge ich an der Frage welche Methode vorzuziehen ist:

String.prototype.split.call(a, '')

oder

String(a).split('')

Beides scheint für verschiedene a (Number, Object, Array) das gleiche
Ergebnis zu liefern.


Mit call wird split als Mehthod von a aufgerufen (this wird
entsprechend gesetzt) und wenn a kein String ist wird es vorher
anscheinend in einen String umgewandelt. Womit letztlich doch die zweite
Version rauskommt. Oder irre ich mich?

Gruß
Sascha
 

Lesen sie die antworten

#1 Bjoern Hoehrmann
07/01/2014 - 13:26 | Warnen spam
* Sascha Hüdepohl wrote in de.comp.lang.javascript:
grade hànge ich an der Frage welche Methode vorzuziehen ist:

String.prototype.split.call(a, '')

oder

String(a).split('')

Beides scheint für verschiedene a (Number, Object, Array) das gleiche
Ergebnis zu liefern.

Mit call wird split als Mehthod von a aufgerufen (this wird
entsprechend gesetzt) und wenn a kein String ist wird es vorher
anscheinend in einen String umgewandelt. Womit letztlich doch die zweite
Version rauskommt. Oder irre ich mich?



Das ist http://www.ecma-international.org/e...-15.5.4.14 in
beiden Fàllen, und `String` als Funktion aufrufen macht nur `ToString`
und `split` selbst macht ebenfalls `ToString` insofern ist das Ergebnis
in der Tat dasselbe. Vorzuziehen ist natürlich die zweite Variante. Bei
der ersten ist es ja möglich, dass `split` mit nicht-Strings was anderes
macht als einfach in einen String konvertieren; bei der zweiten Variante
ist offensichtlich, was passiert.
Björn Höhrmann · mailto: · http://bjoern.hoehrmann.de
Am Badedeich 7 · Telefon: +49(0)160/4415681 · http://www.bjoernsworld.de
25899 Dagebüll · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/

Ähnliche fragen