--- title: Object.prototype.__defineGetter__() slug: Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__ tags: - Depreciado - JavaScript - Objeto - Prototipo - metodo translation_of: Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__ ---
Esta característica está descontinuada em favor de definindo getters usando a sintaxe de inicialização de objeto ou a API {{jsxref("Object.defineProperty()")}}. Enquanto esta característica é amplamente implementada, ela está somente descrita na especificação ECMAScript por causa do uso legado. Este método não deveria ser usado desde que exista existam melhores alternativas.
O método __defineGetter__ conecta uma propriedade do objeto à uma função para ser chamada quando isso é consultado.
obj.__defineGetter__(prop, func)
propfunc{{jsxref("undefined")}}.
O __defineGetter__ permite um {{jsxref("Operators/get", "getter", "", 1)}} ser definido sobre um objeto preexistente.
// Forma não-padrão e depreciada
var o = {};
o.__defineGetter__('gimmeFive', function() { return 5; });
console.log(o.gimmeFive); // 5
// Formas padrão-compatível
// Usando o operador get
var o = { get gimmeFive() { return 5; } };
console.log(o.gimmeFive); // 5
// Usando Object.defineProperty
var o = {};
Object.defineProperty(o, 'gimmeFive', {
get: function() {
return 5;
}
});
console.log(o.gimmeFive); // 5
| Especificação | Status | Comentário |
|---|---|---|
| {{SpecName('ESDraft', '#sec-object.prototype.__defineGetter__', 'Object.prototype.__defineGetter__()')}} | {{Spec2('ESDraft')}} | Incluido no (normativa) anexo para adicionais características legadas ECMAScript para navegadores Web (note que a especificação codifica o que já está em implementações). |
{{Compat("javascript.builtins.Object.defineGetter")}}