bleicher: prototypen missbrauchen

Grüße,
derzeit stresse ich mich mit den Prüfungen, aber in paar Wochen werde ich Zeit haben und sogar dafür schon ein Projekt geplant :)

Eine Sache die mich aber beim letzten etwas gestört hat - ich weiß (AFAIK) dass JS es erlaubt vordefinierte Objekttypen zu erweitern, ich fand aber keine erklärten Beispiele und Transfer des Beispiele auf meine Bedürfnisse klappt nicht, ohne dass ich raten könnte warum.

Es geht um solche Späße wie zB Zusatzmethoden für arrays und html-objekte (zb array.deleteDoubles) etc.

googeln brachte keine Tutorials (Beispiele ja, aber wie gesagt- was genau da gemacht wird kann ich draus nicht lesen) - kennt wer einen guten?
MFG
bleicher

--
__________________________-

FirefoxMyth
  1. Grüße,
    googeln brachte keine Tutorials (Beispiele ja, aber wie gesagt- was genau da gemacht wird kann ich draus nicht lesen) - kennt wer einen guten?
    MFG
    bleicher

    http://openbook.galileocomputing.de/javascript/Download möglich

    mfg

  2. Hallo bleicher,

    Es geht um solche Späße wie zB Zusatzmethoden für arrays und html-objekte (zb array.deleteDoubles) etc.

    Beispiele aus meiner Wühlkiste:

    Mischt die Elemente eines Arrays:

    Array.prototype.misch=function() {  
     var i=this.length;  
      if(i<2) return;  
      do {  
       var zi=Math.floor(Math.random()*i);  
       var t=this[zi];  
       this[zi]=this[--i];  
       this[i]=t;  
      } while (i);  
    }
    

    Sucht ein Element in einem Array und entfernt dieses:

    Array.prototype.rm=function(ele) {  
     var l=this.length;  
      for(var i=0,j=0;i<l;i++) if(this[i]!=ele) this[j++]=this[i];  
      this.length=j;  
    }
    

    Prüft auf vorhandensein eines Elements:

    Array.prototype.srch=function(ele) {  
     var l=this.length;  
      for(var i=0;i<l;i++) if(this[i]==ele) return true;  
      return false;  
    }
    

    Diese Erweiterungen bearbeiten jetzt nur das Array, auf das sie angewendet werden. Sie liefern keine Rückgabe. Wenn nötig, muss ans Ende der Erweiterungen noch ein "return this".

    Vielleicht helfen dir diese Beispiele, einen Zugang zur prototypischen Erweiterung zu finden.

    Gruß, Jürgen