13. Mai 2009 - 13:43
Eine der Eigenschaften von Javascript, die sie von anderen Programmiersprachen abhebt, ist die prototypische Vererbung. Kurz gesagt bedeutet das, dass jedes Objekt eine Eigenschaft .prototype
besitzt, von dem alle erzeugten Instanzen dieses Objektes erben (erben, ist nicht ganz korrekt. Es wird lediglich eine prototype chain aufgebaut, in der nach Funktionen gesucht wird. Aber das ist ein anderes Thema.).
Diese Art der Vererbung, hat Vorteile und auch Nachteile, mit denen sich etliche Artikel im Internet beschäftigen. Deshalb möchte ich hier auch gar nicht näher darauf eingehen, sondern eine Besonderheit dieser Methode zeigen, mit der es möglich ist, in Javascript vordefinierte Objekte um selbgeschriebene Funktionen zu erweitern.
Das String-Objekt bietet sich für Erweiterungen ganz besonders an, da es häufig zum Einsatz kommt und leider auch ein oft benötigte Funktionen nicht kennt.
[... weiterlesen]
31. August 2007 - 10:46
Ich hab mal wieder ein altes Stück Code ausgegraben, was vielleicht für den einen oder anderen nützlich sein könnte. Die Frage ist, wie kann man ein Array mischen? Ich verwende hier wieder Array.prototype
um das Array Objekt um die Methode shuffle() zu erweitern.
[... weiterlesen]
6. Oktober 2005 - 12:32
Doppelte Einträge in einem Array lassen sich am effektivsten über ein Objekt entfernen. Der Trick dabei ist, das ein Objektattribut nicht doppelt vorkommen kann und somit ist ein Attribut, dass mehrmals zugewiesen wird nur einmal vorhanden.
Die Umsetzung erfolgt über Array.prototype
dann läßt sich diese Funktion auf jedes Array anwenden.
Der Code sieht folgendermaßen aus:
Array.prototype.unique = function() {
var o = {};
var tmp = [];
for(var i = 0 ; i < this.length; i++) o[this[i]] = true;
for(var i in o) tmp[tmp.length] = i;
return tmp;
} |
Array.prototype.unique = function() {
var o = {};
var tmp = [];
for(var i = 0 ; i < this.length; i++) o[this[i]] = true;
for(var i in o) tmp[tmp.length] = i;
return tmp;
}
Und der Test: Klick