Un polyfill est un remplacement qui remplace l'appel original par un appel à un shim.
Par exemple, supposons que vous voulez utiliser l'objet navigator.mediaDevices, mais que tous les navigateurs ne le prennent pas en charge. Vous pourriez imaginer une bibliothèque qui fournit un shim que vous pourriez utiliser comme ceci :
MediaShim.mediaDevices.getUserMedia(...);
Dans ce cas, vous appelez explicitement un shim au lieu d'utiliser l'objet ou la méthode d'origine. Le polyfill, en revanche, remplace les objets et les méthodes sur les objets d'origine.
Par exemple :
navigator.mediaDevices.getUserMedia(...);
Dans votre code, il semble que vous utilisiez l'objet navigator.mediaDevices standard. Mais en réalité, le polyfill (adapter.js dans l'exemple) l'a remplacé par le sien.
Celui avec lequel il a été remplacé est un shim. Celui-ci détectera si la fonctionnalité est nativement supportée et l'utilisera si c'est le cas, ou il contournant en utilisant d'autres API sinon.
Ainsi, un polyfill est une sorte de shim "transparent". Et c'est ce que Remy Sharp (qui a inventé le terme) voulait dire en disant : "si vous retirez le script de polyfill, votre code continuera de fonctionner, sans aucun changement requis malgré la suppression du polyfill".
1 votes
Vous pouvez en savoir plus sur blogs.msdn.com/b/jennifer/archive/2011/08/04/…
0 votes
@user3400622 Merci pour le lien, l'explication dans le lien est très claire.
0 votes
@user3400622 le lien mène à "Page non trouvée".