Capítulo 14. Metaprogramação
Este trabalho foi traduzido com recurso a IA. Agradecemos o teu feedback e comentários: translation-feedback@oreilly.com
Este capítulo de cobre uma série de recursos avançados do JavaScript que não são normalmente usados na programação do dia a dia, mas que podem ser valiosos para programadores que escrevem bibliotecas reutilizáveis e de interesse para qualquer pessoa que queira mexer nos detalhes sobre como os objetos JavaScript se comportam.
Muitos dos recursos descritos aqui podem ser vagamente descritos como "metaprogramação": se programação regular é escrever código para manipular dados, então metaprogramação é escrever código para manipular outro código. Numa linguagem dinâmica como o JavaScript, as linhas entre programação e metaprogramação são pouco nítidas - mesmo a simples capacidade de iterar sobre as propriedades de um objeto com um ciclo for/in pode ser considerada "meta" por programadores habituados a linguagens mais estáticas.
Os tópicos de metaprogramação abordados neste capítulo incluem:
-
§14.1 Controlar a enumerabilidade, a eliminabilidade e a configurabilidade das propriedades dos objectos
-
§14.2 Controlar a extensibilidade dos objectos e criar objectos "selados" e "congelados
-
§14.3 Consultar e definir os protótipos dos objectos
-
§14.4 Aperfeiçoar o comportamento dos teus tipos com Símbolos bem conhecidos
-
§14.5 Criar DSLs (linguagens específicas do domínio) com funções de etiquetas de modelo
-
§14.6 Sondar objectos com os métodos ...