Struppi: Browser-Kompatibilität

Beitrag lesen

Nun ist es so, daß ich eine ganze Funktion nur ausführen will, wenn die Methode splice existiert, das Array wird aber erst innerhalb der Funktion erzeugt. Ich könnte zwar tricksen und ein dummy-Array benutzen:

alert([].splice);

aber das finde ich programmiertechnisch ziemlich unschön.

Gibt es noch eine andere, evtl. generische Methode oder müßte ich es wie oben schreiben? Array.splice scheint nicht zu funktionieren. Und wie sieht es mit Methoden anderer Objekte aus? [2]

Selbst die Funktion schreiben, wie das geht siehst du z.b. hier http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Objects:Array:forEach

if (!Array.prototype.forEach)  
{  
  Array.prototype.forEach = function(fun /*, thisp*/)  
  {  
    var len = this.length;  
    if (typeof fun != "function")  
      throw new TypeError();  
  
    var thisp = arguments[1];  
    for (var i = 0; i < len; i++)  
    {  
      if (i in this)  
        fun.call(thisp, this[i], i, this);  
    }  
  };  
}  

Das kannst du genauso mit splice machen.

Struppi.