JavaScript ermöglicht die Erweiterung der Funktionalität auf Basistypen. Sie können beispielsweise Object.prototype eine Methode hinzufügen, um die Methode für alle Objekte verfügbar zu machen. Dieser Ansatz funktioniert gleichermaßen gut für Funktionen, Arrays, Zeichenfolgen, Zahlen, reguläre Ausdrücke und boolesche Werte.
Zum Beispiel können Sie eine Methode zu Function.prototype hinzufügen, um sie für alle Funktionen verfügbar zu machen:
Function.prototype.method = function(name, func) { this.prototype[name] = func; return this; }
Indem Sie eine Methodenmethode zu Function.prototype hinzufügen und dann eine Methode hinzufügen um die Methode method direkt aufzurufen, ohne einen Prototyp schreiben zu müssen. JavaScript verfügt beispielsweise nicht über einen Integer-Typ. Wir können dies implementieren, indem wir Number.prototype eine Integer-Methodenklasse hinzufügen.
Number.method("integer", function(){ return Math[this < 0 ? 'ceil' : ''floor'](this); }); console.log((-10 / 3).integer()); //out put -3
Durch das Hinzufügen von Methoden zu Grundtypen kann die Ausdruckskraft der Sprache erheblich verbessert werden. Aufgrund der dynamischen Natur der JavaScript-Prototypvererbung wird die neue Methode sofort allen Objektinstanzen zugewiesen, einschließlich Objekten, die vor dem Hinzufügen der Methode erstellt wurden.
Da der Prototyp des Basistyps eine öffentliche Struktur ist, müssen Sie bei der Verwendung der Klassenbibliothek vorsichtig sein. Ein sicherer Ansatz besteht darin, die Methode nur dann hinzuzufügen, wenn Sie sicher sind, dass sie nicht vorhanden ist, zum Beispiel:
Function.prototype.method = function(name, func) { if (!this.prototype(name)) { this.prototype[name] = func; } return this; };