폴리 필은 원래 호출을 심 호출로 대체 하는 심입니다.
예를 들어 navigator.mediaDevices 객체를 사용하려고하지만 모든 브라우저에서이 기능을 지원하는 것은 아닙니다. 다음과 같이 사용할 수있는 심을 제공하는 라이브러리를 상상할 수 있습니다.
<script src="js/MediaShim.js"></script>
<script>
MediaShim.mediaDevices.getUserMedia(...);
</script>
이 경우 원래 객체 또는 메소드를 사용하는 대신 명시 적으로 shim을 호출합니다. 반면에 폴리 필은 원본 객체의 객체와 메소드를 대체합니다.
예를 들면 다음과 같습니다.
<script src="js/adapter.js"></script>
<script>
navigator.mediaDevices.getUserMedia(...);
</script>
코드에서는 표준 navigator.mediaDevices 객체를 사용하는 것처럼 보입니다. 그러나 실제로 폴리 필 (예제에서는 adapter.js)이이 객체를 자체 객체로 대체했습니다.
그것을 대체 한 것은 심입니다. 이것은 기능이 기본적으로 지원되는지 여부를 감지하고 기능이있는 경우 사용하거나 그렇지 않은 경우 다른 API를 사용하여 문제를 해결합니다.
따라서 polyfill은 일종의 "투명한"심입니다. 그리고 이것이 " 폴리 필 스크립트를 제거하면 폴리 필을 제거하더라도 필요한 변경없이 코드가 계속 작동합니다 "라고 말할 때 Remy Sharp (용어를 만든 사람)의 의미 입니다.