In Javascript, können Sie verlängern die DOM?
In Javascript, können Sie die Erweiterung bestehender Klassen, indem Sie mit Ihrem Prototyp-Objekt:
String.prototype.getFirstLetter = function() {
return this[0];
};
Ist es möglich, diese Methode zu erweitern, DOM-Elemente?
- Sie können. Aber sollte das wohl nicht 🙂 perfectionkills.com/whats-wrong-with-extending-the-dom
- Tatsächlich haben sich die Dinge geändert in den letzten drei Jahren: github.com/nbubna/mind-hacking/blob/gh-pages/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
verlängern Sie den DOM durch die Verwendung der Element Prototyp. Aber das funktioniert nicht im IE7 und früher. Sie verlängern müssen, das jeweilige element, ein zu einer Zeit. Die Prototype-Bibliothek tut dies. Ich empfehle die Suche durch die Quelle genau zu sehen, wie es gemacht wird.
Ich die Antwort gefunden, nur wie ich geschrieben hatte, die Frage, aber dachte, ich würde post sowieso teilen die info.
Dem Objekt, das Sie brauchen, um zu erweitern, ist
Element.prototype
.Sollten Sie nicht direkt die Verlängerung etwas (mit "alles" meine ich native DOM-Objekte) - das wird nur dazu führen, schlechte Dinge. Plus re-Ausweitung der jedes neue element (etwas, was Sie würde tun müssen, um Unterstützung von IE) fügt zusätzlichen Aufwand.
Warum nicht die jQuery-Ansatz und erstellen Sie eine wrapper/Konstruktor und verlängern statt:
Dann können Sie fügen Sie Ihre eigenen Methoden über
myDOM.fn
... Und Sie können es verwenden, wie diese:Ja, Sie können, aber es wird dringend empfohlen, nicht zu.
Wenn Sie überschreiben die etwas andere Bibliothek erwartet wird, werden die original-oder eine andere Bibliothek überschrieben haben, etwas, das Sie erwartet hatten .. chaos!
Ist es am besten Praxis, um zu halten Ihren code in einen eigenen Namensraum/Bereich.