Esta tradução está incompleta. Por favor, ajude a traduzir este artigo.

Esta característica está descontinuada em favor de definindo getters usando a sintaxe de inicialização de objeto ou a API 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.

Sintaxe

obj.__defineGetter__(prop, func)

Parâmetros

prop
Uma string contendo o nome da propriedade para conectar a função dada.
func
Uma função para ser ligada a uma consulta da propriedade especificada.

Valor de Retorno

undefined.

Descrição

O __defineGetter__ permite um getter ser definido sobre um objeto preexistente.

Exemplos

// 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ções

Especificação Status Comentário
ECMAScript Latest Draft (ECMA-262)
The definition of 'Object.prototype.__defineGetter__()' in that specification.
Rascunho 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).

Compatibilidade de navagadores

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
__defineGetter__
Deprecated
Chrome Full support YesEdge Full support YesFirefox Full support 1
Notes
Full support 1
Notes
Notes Starting with Firefox 48, this method can no longer be called at the global scope without any object. A TypeError will be thrown otherwise. Previously, the global object was used in these cases automatically, but this is no longer the case.
IE Full support 11Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes

Legend

Full support  
Full support
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.
See implementation notes.
See implementation notes.

Veja também

Etiquetas do documento e colaboradores

Colaboradores desta página: mdnwebdocs-bot, KyryIx
Última atualização por: mdnwebdocs-bot,