peterS.: String-Objekten per prototype trim()-Methode geben

Beitrag lesen

gruss Felix, hallo Struppi,

/*  
  
ich entwickle solche funktionalitaet  
  
  
mittlerweile lieber so: */  
  
if (typeof String.prototype.trim != "function") {  
  
 String.prototype.trim = (function () {  
  
  var regXTrim = (/^\s+|\s+$/g);  
  
  return (function () {  
  
   return this.replace(regXTrim, "");  
  });  
 })();  
}/*  
  
anstatt so: */  
  
if (typeof String.prototype.trim != "function") {  
  
 String.prototype.trim = (function () {  
  
  return this.replace((/^\s+|\s+$/g), "");  
 });  
}/*  
  
fuer die zweite loesung wird der regulaere ausdruck bei jedem  
aufruf der [trim]-methode neu initialisiert(/kompiliert) und  
nach abarbeitung der methode wieder verworfen.  
  
die zweite loesung legt diesen konstanten regulaeren ausdruck  
nur einmal im funktionsstack der aeusseren erzeugerfunktion an  
sobald diese ausgefuehrt wird und gibt dabei auch die [trim]-  
methode zurueck, welche immer zugriff auf den unveraenderlichen  
ausdruck hat, da sie zusammen mit diesem im selben sichtbarkeits-  
(speicher)bereich erzeugt wurde.  
  
in der praxis wird man den geschwindigkeitsvorteil der ersten  
gegenueber der zweiten loesung aber wohl kaum wahrnehmen koennen.  
  
*/

so long - peterS. - pseliger@gmx.net

--
»Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - Douglas Crockford
ie:( fl:) br:> va:( ls:& fo:) rl:) n3;} n4:} ss:} de:µ js:} mo:? zu:]