Polyfill to podkładka zastępcza, która zastępuje oryginalne wezwanie wezwaniem do podkładki.
Powiedzmy, że chcesz użyć obiektu navigator.mediaDevices, ale nie wszystkie przeglądarki obsługują to. Możesz sobie wyobrazić bibliotekę, która zapewnia podkładkę, której możesz użyć w następujący sposób:
<script src="js/MediaShim.js"></script>
<script>
MediaShim.mediaDevices.getUserMedia(...);
</script>
W takim przypadku jawnie wywołujesz podkładkę zamiast używać oryginalnego obiektu lub metody. Z drugiej strony, wypełniacz zastępuje obiekty i metody na obiektach oryginalnych.
Na przykład:
<script src="js/adapter.js"></script>
<script>
navigator.mediaDevices.getUserMedia(...);
</script>
W twoim kodzie wygląda to tak, jakbyś używał standardowego obiektu navigator.mediaDevices. Ale tak naprawdę polyfill (w tym przykładzie adapter.js) zastąpił ten obiekt własnym.
Ten, który zastąpił, to podkładka dystansowa. Wykryje to, czy funkcja jest natywnie obsługiwana i użyje jej, jeśli jest, lub obejdzie ją przy użyciu innych interfejsów API, jeśli nie jest.
Zatem wypełnienie jest rodzajem „przezroczystego” podkładki. I to właśnie miał na myśli Remy Sharp (który ukuł ten termin) mówiąc: „ jeśli usuniesz skrypt wypełniania, kod będzie działał, bez żadnych zmian wymaganych pomimo usunięcia wypełnienia ”.