Um dos pontos de atrito ideológico da primeira estrutura JavaScript era estender protótipos em vez de envolver funções. Estruturas como MooTools e Prototype estendiam protótipos, enquanto o jQuery e outras estruturas menores não o faziam. Cada um deles tinha seus benefícios, mas, no final das contas, todos esses anos depois, ainda acredito que a capacidade de estender protótipos nativos é um recurso enorme do JavaScript. Vamos ver como é fácil capacitar cada instância de uma primitiva estendendo os protótipos!
Todo nativo do JavaScript, como Number
, String
, Array
, Object
, etc. tem um prototype
. Todo método em um prototype
é herdado por todas as instâncias desse objeto. Por exemplo, podemos fornecer cada `Array
com uma instância unique
estendendo seu protótipo:
Array.prototype.unique = function() { return [...new Set(this)]; } ['1', '1', '2'].unique(); // ['1', '2'] new Array('1', '1', '2').unique(); // ['1', '2']
Observe que se o senhor também puder garantir a capacidade de encadeamento retornando this
:
['1', '1', '2'].unique().reverse(); // ['2', '1']
A maior crítica à extensão de protótipos sempre foi a colisão de nomes, em que a eventual implementação da especificação é diferente da implementação da estrutura. Embora eu entenda esse argumento, o senhor pode combatê-lo prefixando os nomes das funções. Adicionar superpoderes a um protótipo nativo para que todas as instâncias o tenham é tão útil que eu nunca diria a alguém para não estender um protótipo. #MooToolsFTW.
6 coisas que o senhor não sabia sobre o Firefox OS
Firefox OS está em todas as notícias de tecnologia e por um bom motivo: A Mozilla finalmente deu aos desenvolvedores da Web a plataforma de que precisam para criar aplicativos da maneira como os criam há anos: com CSS, HTML e JavaScript. O Firefox OS tem se aprimorado rapidamente…
Animações JS responsivas e infinitamente escalonáveis
No final de 2012, não era fácil encontrar projetos de código aberto usando
requestAnimationFrame()
– esse é o gancho que permite que o código Javascript seja sincronizado com o loop de pintura nativo de um navegador da Web. As animações que usam esse método podem ser executadas a 60 fps e proporcionar…
Enviar notificações por e-mail sobre imagens quebradas usando jQuery AJAX
Normalmente, é melhor reparar caminhos de imagens quebrados o mais rápido possível, pois eles podem prejudicar a credibilidade de um site. E pior ainda é ter um usuário informando o senhor sobre isso. Usando jQuery e PHP, o senhor pode fazer com que sua página o notifique automaticamente sobre…
Crie um acordeão MooTools simples e elegante
Na semana passada, abordei um efeito suave e sutil do MooTools chamado Kwicks. Outra grande criação do MooTools é o Accordion, que funciona como… espere… um acordeão! Nunca fui um grande fã do Weird Al, então isso é o mais próximo possível de tocar um acordeão…