Heim > Artikel > Web-Frontend > Die Verwendung von Polyfill-Annotationen und das Verhindern von Änderungen in JS
Dieses Mal werde ich Ihnen die Verwendung von Polyfill-Anmerkungen und die Verhinderung von Änderungen in JS vorstellen. Was sind die Vorsichtsmaßnahmen zur Verwendung von Polyfill-Anmerkungen und zur Verhinderung von Änderungen in JS? , lass uns einen Blick darauf werfen.
Da die Funktionen von ES5 und HTML5 nach und nach von verschiedenen Browsern implementiert werden. JS-Polyfills (auch als Shims bekannt) sind populär geworden. Ein Polyfill ist eine Simulation bestimmter Funktionen, die in neuen Browserversionen vollständig definiert und nativ implementiert sind. Beispielsweise fügt ES5 die Funktion forEach() für Arrays hinzu. Diese Methode verfügt über eine Scheinimplementierung in ES3, sodass Sie diese Methode in älteren Browsern verwenden können. Der Schlüssel zu Polyfills besteht darin, dass ihre Scheinimplementierung vollständig mit der nativen Implementierung des Browsers kompatibel bleibt. Gerade weil nur wenige Browser diese Funktionen nativ implementieren, muss geprüft werden, ob die Verarbeitung dieser Funktionen in verschiedenen Situationen möglichst den Standards entspricht.
Um ihre Ziele zu erreichen, fügen Polyfills häufig einige Methoden zu Objekten hinzu, die ihnen nicht gehören . Ich bin kein Fan von Polyfills, aber ich verstehe, dass andere sie verwenden. Im Vergleich zu anderen Objektmodifikationen sind Polyfills begrenzt und relativ sicher. Da diese Methoden in der nativen Implementierung vorhanden sind und funktionieren, fügen Polyfills diese Methoden nur hinzu, wenn die nativen Methoden nicht vorhanden sind und ihr Verhalten genau dem der Methoden der nativen Version entspricht.
Der Vorteil von Polyfills besteht darin, dass sie sehr einfach entfernt werden können, wenn der Browser eine native Implementierung bereitstellt. Wenn Sie Polyfills verwenden, müssen Sie herausfinden, welche Browser native Implementierungen bereitstellen. Stellen Sie außerdem sicher, dass die Implementierung von Polyfills vollständig mit der nativen Implementierung des Browsers übereinstimmt, und überprüfen Sie noch einmal, ob die Klassenbibliothek Testfälle bereitstellt, die die Richtigkeit dieser Methoden überprüfen. Der Nachteil von Polyfills besteht darin, dass ihre Implementierung im Vergleich zur nativen Implementierung des Browsers möglicherweise ungenau ist, was Ihnen viel Ärger bereiten kann, und Sie sollten sie genauso gut nicht implementieren.
Um eine optimale Wartbarkeit zu erreichen, vermeiden Sie die Verwendung von Polyfills und erstellen Sie stattdessen Fassaden über der vorhandenen Funktionalität. Dieser Ansatz bietet Ihnen die größte Flexibilität, was besonders wichtig ist, wenn die native Implementierung Fehler aufweist (Vermeidung von Polyfills). In diesem Fall möchten Sie die native API nicht direkt verwenden, da Sie sonst die Fehler in der nativen Implementierung nicht isolieren können.
ES5 führt mehrere Methoden ein, um Änderungen an Objekten zu verhindern. Es ist wichtig, diese Funktionen zu verstehen, damit Sie diese Objekte jetzt beispielsweise sperren können, damit niemand Funktionen ändern kann, die er nicht beabsichtigt hat, sei es absichtlich oder unabsichtlich. Aktuelle Browser (2018) unterstützen diese Funktionen von ES5 und es gibt drei Ebenen von Sperrmodifikationen:
Erweiterung verhindern (Object.preventExtension()): „Hinzufügen“ zu Objekten verhindern Eigenschaften und Methoden, aber vorhandene Eigenschaften und Methoden können geändert oder gelöscht werden
Versiegelung (Object.seal()): ähnelt „Erweiterung verhindern“ und verbietet „Löschen“ für Objekte „Vorhandene Eigenschaften“. und Methoden
Freeze (Object.freeze()): ähnelt „Versiegelung“, und es ist verboten, vorhandene Eigenschaften und Methoden für das Objekt zu „ändern“ (alle Felder sind schreibgeschützt)
Jeder Sperrtyp verfügt über zwei Methoden: eine zum Ausführen des Vorgangs und die andere zum Erkennen, ob der entsprechende Vorgang angewendet wurde. Um eine Erweiterung zu verhindern, können die beiden Funktionen Object.preventExtension() und Object.isExtensible() verwendet werden. Sie können die Verwendung verwandter Methoden auf MDN überprüfen, daher werde ich hier nicht auf Details eingehen.
Die Verwendung dieser Methoden in ES5 ist eine hervorragende Möglichkeit, sicherzustellen, dass Ihr Projekt nicht ohne Ihre Zustimmung für Änderungen gesperrt wird. Wenn Sie der Autor einer Codebasis sind, möchten Sie wahrscheinlich bestimmte Teile der Kernbibliothek sperren, um sicherzustellen, dass sie nicht versehentlich geändert werden, oder um Bereiche zu erzwingen, die das Überleben von Erweiterungen ermöglichen. Wenn Sie ein Anwendungsentwickler sind, sperren Sie alle Teile der Anwendung, die nicht geändert werden sollen. In beiden Fällen können die oben genannten Sperrmethoden erst verwendet werden, nachdem die Funktionen dieser Objekte vollständig definiert wurden. Sobald ein Objekt gesperrt ist, kann es nicht entsperrt werden.
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Empfohlene Lektüre:
So erkennen Sie Originalwerte in der Webentwicklung
Warum Sie die Verwendung von Global vermeiden müssen Variablen in der Webentwicklung
Das obige ist der detaillierte Inhalt vonDie Verwendung von Polyfill-Annotationen und das Verhindern von Änderungen in JS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!