Get to know MDN better
Esta página foi traduzida do inglês pela comunidade. Saiba mais e junte-se à comunidade MDN Web Docs.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julho de 2015.
A sintaxe de get associa uma propriedade de um objeto a uma função que será chamada quando tal propriedade é acessada.
O nome da propriedade à qual a função dada será associada.
expressionA partir do ECMAScript 6, você pode também utilizar expressões para um nome computado de uma propriedade para associar à função dada.
Às vezes é desejável que se permita acesso a uma propriedade que retorna um valor computado dinamicamente, ou você pode querer refletir o status de uma variável interna sem requerer o uso de chamadas de método explícitas. Em Javascript, isso pode ser feito com o uso de um getter. Não é possível simultaneamente ter um getter associado a uma propriedade e a mesma possuir um valor, embora seja possível usar um getter e um setter em conjunto para criar algo como uma pseudo-propriedade.
Note o seguinte quando for trabalhar com a sintaxe get:
Um getter pode ser removido usando o operador delete.
O exemplo abaixo irá criar a pseudo-propriedade latest para o objeto obj, que irá retornar o último item do array em log.
Note que a tentativa de atribuir um valor a latest não irá alterá-la.
Se você quer remover um getter, você pode apenas utilizar delete.
Para adicionar um getter a um objeto existente a qualquer momento, use Object.defineProperty().
Nota: Propriedades com nome computado são uma tecnologia experimenta, parte da proposta do ECMAScript 6 e não é amplamente suportada pelos navegadores ainda. O exemplo abaixo irá disparar um SyntaxError em ambientes sem suporte.
Getters lhe dão uma maneira de definir uma propriedade de um objeto, mas eles não calculam o valor da propriedade até que sejam acessados. Um getter adia o custo de cálculo do valor até que o valor seja necessário e, se nunca o for, você não precisa pagar esse custo.
Uma técnica de otimização adicional para atrasar o cálculo do valor de uma propriedade e cacheá-lo para acesso futuro são os smart ou memoized getters. O valor é calculado na primeira vez que o getter é invocado, sendo então cacheado para que acessos subsequentes retornem o valor em cache sem recalculá-lo. Isso é util nas seguintes situações:
Isso significa que você não deveria utilizar um lazy getter para uma propriedade cujo valor você espera mudar, porque o getter nunca irá recalcular o valor.
No exemplo a seguir, o objeto tem um getter como uma propriedade própria (own property). Ao tentar obter essa propriedade que foi removida, ela será readicionada, mas implicitamente como uma propriedade comum desta vez. Finalmente, o valor será retornado.
Para o Firefox, veja também o código do módulo XPCOMUtils.jsm, que define a função defineLazyGetter().
| ECMAScript® 2027 Language Specification # sec-method-definitions |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 17 de dez. de 2024 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.