Polyfill é Polifilla

O que é um Polyfill?

Um polyfill é um arquivo de Javascript que preenche um buraco replicando atributos nativos para navegadores que não os possuem.

Criado por Remy Sharp (https://remysharp.com/2010/10/08/what-is-a-polyfill), um polyfill, ou polyfiller, é um pedaço de código (ou plugin) que fornece a tecnologia que o desenvolvedor espera que o navegador implemente.

Um exemplo de polyfill

O código abaixo é um polyfill para o novo método de string do ES6, startsWith():

if (!String.prototype.startsWith) {
 String.prototype.startsWith = function (searchString, position) {
   position = position || 0;
   return this.substr(position, searchString.length) === searchString;
 };
}

Como você pode ver, um polyfill é apenas JavaScript. Este código é um simples polyfill (dê uma olhada no MDN), mas existe um bem mais robusto aqui.

Lembre-se que um polyfill é usado para corrigir funcionalidades ausentes. Se o navegador suporta ES6 e tem nativo o método startsWith, então não haverá necessidade para um polyfill substituí-lo. O polyfill sobrescreverá a funcionalidade, caso ela já exista nativa no navegador.

if (!String.prototype.startsWith)

Esta linha evita que o método startsWith nativo seja sobrescrito.Polyfill é Polifilla

Outros usos para polyfills

Os polyfills não servem só para corrigir funcionalidade ausente

JavaScript é a linguagem usada para criar um polyfill, mas um polyfill não serve só para remendar os recursos que estão faltando! Existem polyfills para todos os tipos de funcionalidades em navegadores:

  • SVG
  • Canvas
  • Armazenagem web (armazenagem local/armazenagem de seção)
  • Vídeo
  • Elementos HTML5
  • Accessibilidade
  • Sockets web
  • e muito mais!

Para uma lista mais completa de polyfills, veja este link

Fonte: Udacity

Publicado por

Ricardo de Carvalho

Webmaster, Coordenador de Programação e Programador PHP, JS e React - certificado pela iMasters Certified Professional - PHP e JS - Boas práticas

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>