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
Categories: JavaScript ~ ~ Trackback
December 20th, 2011 at 10:04 am
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