--- title: Object.prototype.__defineGetter__() slug: Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__ tags: - JavaScript - Objeto - Prototipo - Prototype - metodo translation_of: Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__ original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/__defineGetter__ ---
{{JSRef}}

Esta característica está obsoleta en favor de definir getters usando el object initializer syntax o la API {{jsxref("Object.defineProperty()")}}.

En todo caso, como es ampliamente implementada y usada en la Web,  es poco probable que los navegadores dejen de implementarla.

El método __defineGetter__ enlaza una propiedad de un objeto a una función a ser llamada cuando esa propiedad es buscada.

Sintaxis

obj.__defineGetter__(prop, func)

Parámetros

prop
Un texto (string) que contiene el nombre de la propiedad para enlazar la función dada.
func
A function to be bound to a lookup of the specified property.

Descripción

The __defineGetter__ allows a {{jsxref("Operators/get", "getter", "", 1)}} to be defined on a pre-existing object.

Ejemplos

// Forma no-estándar y obsoleta

var o = {};
o.__defineGetter__('gimmeFive', function() { return 5; });
console.log(o.gimmeFive); // 5


// Formas compatibles con el estándar

// Usando el 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

Especificaciones

Especificación Estado Comentario
{{SpecName('JavaScript', '#object.prototype.__definegetter__', 'Object.prototype.__defineGetter__()')}} {{Spec2('JavaScript')}}  

Compatibilidad de navegadores

{{Compat("javascript.builtins.Object.defineGetter")}}

Mira también