Problemas com Object.prototype no Javascript

Surgiu a necessidade de fazer um “monkey patch” no Object para incluir o método try como funciona no rails.

Com Javascript temos a possibilidade de modificar os métodos dos objetos como “métodos de classes” (inclusive built-in)  e reaproveitar esse código na extensão dos componentes. A herança tradicional e oficial é usando o “.prototype”, assim eu poderia fazer simplesmente [usando node.js para testar]:

Link caso não consiga ver no seu reader.

O problema disso, no client-side principalmente, é que não podemos alterar o Object.prototype diretamente porque provoca vários problemas, de cara estourou as funções anônimas criados a partir de closures. Uma solução bacana seria usar a definição de Object.defineProperty, mas nem todos os navegadores já implementam isso e ainda teríamos que definir a versão do js na tag script para 1.8, ou seja, inviável.


Link caso não consiga ver no seu reader.

Um workaround para resolver esse problema foi usando a função Object.create com a dica do Douglas Crockford:


Link caso não consiga ver no seu reader.

Não é uma solução elegante, sempre que eu for criar um objeto literal eu tenho que usar Object.create(args), mas por enquanto foi o melhor crossbrowser possível.
Se você tiver uma idéia melhor, comente aí que estou precisando 🙂

Typically chemist’s shop can sale to you with discreet treatments for various health problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a extremely complicated problem. Matters, like “coupons for viagra“, are connected numerous types of health problems. If you need to take prescription medications, ask your dispenser to check your testosterone levels before. Sometimes the treatment options may include erectile malfunction remedies or a suction device that helps get an hard-on. Keep in mind web-site which is ready to sell erectile malfunction drugs like Viagra without a formula is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.

One thought on “Problemas com Object.prototype no Javascript

  1. Rodolfo Jorge Nemer Nogueira

    Excelente artigo amigo. Me ajudou muito a informação sobre a referência de objetos no javascript. Legal mesmo a interação dos JSON com o stringfy, que é bem bacana também. O prototype resolve muito problemas também com relação a heranças.

    Abraços amigo!
    Rodolfo Jorge Nemer Nogueira
    Curitiba / Paraná
    UFPR – Música

Comments are closed.