Como alguém que fez parte da lendária equipe MooTools JavaScript, tenho certa afeição por estender os protótipos de objetos nativos. É claro que a prática de estender protótipos é um tabu hoje em dia, pois os fornecedores de navegadores estão iterando e implementando novas especificações mais rapidamente do que na era do IE6, mas estender os nativos no Node.js poderia ser considerado mais seguro, pois, em teoria, temos mais controle sobre o ambiente (versão do Node.js).


A extensão de um nativo no Node.js é bastante simples:



// Inside a file module called "String.prototype.startsWith.js"
// Naming convention important for maintenance and clearness of intent

// This is a very, very simple shim not made for production use
// It's simply to illustrate the prototype extension
// More logic should be added for edge cases 
if(!String.prototype.startsWith) {
  String.prototype.startsWith = function(term) {
    return this.substr(0, term.length) === term;
  };
}

// ----------

// Inside any other module that wants to use the extension
require('String.prototype.startsWith');

// Usage
if(myString.startsWith('Moo')) {
  // ...
}


Desde que o senhor exija o módulo que contém o código de extensão, o nativo terá o método adicional desejado. É claro que isso não se aplica apenas aos nativos, o senhor pode estender outros objetos da mesma forma. Se o senhor pesquisar no npm, poderá encontrar vários protótipos de extensões, sendo um deles String.prototype.startsWith, que também funcionam no código do lado do cliente.


Presumo que receberei algum tipo de ódio por sugerir que essa prática seja mais adequada para o Node.js, portanto, o senhor pode me atacar!

  • Expressões regulares para o resto de nós

    Mais cedo ou mais tarde, o senhor se deparará com uma expressão regular. Com sua sintaxe enigmática, documentação confusa e enorme curva de aprendizado, a maioria dos desenvolvedores se contenta em copiá-las e colá-las do StackOverflow e torcer para que funcionem. Mas e se o senhor pudesse decodificar as expressões regulares e aproveitar seu poder? Em…

  • Tags META do Facebook Open Graph

    Não é segredo que o Facebook se tornou um importante gerador de tráfego para todos os tipos de sites. Hoje em dia, até mesmo as grandes corporações direcionam os consumidores para suas páginas do Facebook, em vez de para os sites corporativos diretamente. E, é claro, há widgets “Curtir” e “Recomendar” do Facebook em todos os sites. Um…