Ein Polyfill ist eine Unterlage, die Ersetzt die ursprüngliche Aufforderung mit der Aufforderung zu einer Unterlegscheibe.
Nehmen wir an, Sie möchten das navigator.mediaDevices-Objekt verwenden, aber nicht alle Browser unterstützen dies. Sie könnten sich eine Bibliothek vorstellen, die ein Shim bereitstellt, das Sie wie folgt verwenden könnten:
<script src="js/MediaShim.js"></script>
<script>
MediaShim.mediaDevices.getUserMedia(...);
</script>
In diesem Fall rufen Sie explizit ein Shim auf, anstatt das Originalobjekt oder die Originalmethode zu verwenden. Das Polyfill hingegen ersetzt die Objekte und Methoden der Originalobjekte.
Zum Beispiel:
<script src="js/adapter.js"></script>
<script>
navigator.mediaDevices.getUserMedia(...);
</script>
In Ihrem Code sieht es so aus, als ob Sie das Standard navigator.mediaDevices Objekt verwenden. Aber in Wirklichkeit hat das Polyfill (adapter.js im Beispiel) dieses Objekt durch sein eigenes ersetzt.
Das Teil, das es ersetzt hat, ist eine Unterlegscheibe. Dieser erkennt, ob die Funktion nativ unterstützt wird, und verwendet sie, wenn dies der Fall ist, oder er umgeht sie mit anderen APIs, wenn dies nicht der Fall ist.
Ein Polyfill ist also eine Art "transparente" Zwischenlage. Und das ist es, was Remy Sharp (der den Begriff geprägt hat) meinte, als er sagte: " wenn Sie das Polyfill-Skript entfernen, würde Ihr Code weiterhin funktionieren, ohne dass Änderungen erforderlich sind, obwohl das Polyfill entfernt wurde ".