Wo kann man hinzufügen-String Prototyp
Ich bin derzeit mit JavaScript (CommonJS) in Titanium Studio und haben eine Frage zum prototyping.
Angenommen, ich möchte eine neue Funktion hinzufügen zu einer vorhandenen Klasse. Zum Beispiel:
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,"");
}
Was ist der am besten geeignete Ort, wo ich sollte fügen Sie diesen code so wurde Es für alle Klassen gleich?
Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok, fand ich die beste Antwort (von Ivan Škugor) und ich möchte es hier teilen mit, welche die gleiche Frage. Vielen Dank für Ihre Hilfe.
"Erweitern nativen Prototypen im Allgemeinen ist keine gute Idee. In diesem speziellen Fall, das sollte nicht viel von einem problem in einigen anderen Umgebungen, aber mit CommonJs, das ist ein problem, weil jedes CommonJs-Modul ist der neue JS-Kontext, was bedeutet, reinigen JS-Umgebung. Also, alles, was Sie tun, mit der Umwelt (wie die Erweiterung nativen Prototypen) werden nicht reflektiert, die auf andere Module.
Weil das so ist, das beste ist, zu schreiben "utils" Modul mit Hilfsfunktionen und "benötigen", es überall Sie es brauchen."
— Ivan Škugor
Dein Beispiel ist gut zu verwenden, da die meisten Browser haben Ihre eigenen trim-Methode, so ist es am besten, um zu testen, für die einheimischen, bevor du deine eigenen:
Nur sicherstellen, dass es definiert wird, bevor was auch immer code ist zu gehen, um zu versuchen und verwenden Sie es, und Sie werden eingestellt!