This feature is deprecated in favor of defining getters using the object initializer syntax or the Object.defineProperty() API. While this feature is widely implemented, it is only described in the ECMAScript specification because of legacy usage. This method should not be used since better alternatives exist.

Die __defineGetter__ Methode bindet eine Eigenschaft des Objects an eine Funktion, die aufgerufen wird, wenn das Object angesehen wird.


obj.__defineGetter__(prop, func)


Ein String der den Namen der zur Funktion gebundenen Eigenschaft enthält
Eine Funktion die zur Eigenschaft gebunden wird.

Return value



Die __defineGetter__ erlaubt einen getter (en-US) auf ein Object zu erstellen.


// Nicht standard und veraltete Weise

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

// Üblicher Weg

// Mithilfe der get Methode
var o = { get gimmeFive() { return 5; } };
console.log(o.gimmeFive); // 5

// Mithilfe von Object.defineProperty
var o = {};
Object.defineProperty(o, 'gimmeFive', {
  get: function() {
    return 5;
console.log(o.gimmeFive); // 5


Specification Status Comment
ECMAScript (ECMA-262)
Die Definition von 'Object.prototype.__defineGetter__()' in dieser Spezifikation.
Lebender Standard Included in the (normative) annex for additional ECMAScript legacy features for Web browsers (note that the specification codifies what is already in implementations).

Browser compatibility

Wir konvertieren die Kompatibilitätsdaten in ein maschinenlesbares JSON Format. Diese Kompatibilitätstabelle liegt noch im alten Format vor, denn die darin enthaltenen Daten wurden noch nicht konvertiert. Finde heraus wie du helfen kannst! (en-US)
Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Ja) (Ja) (Ja) 11 (Ja) (Ja)
Feature Android Chrome for Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Ja) (Ja) (Ja) (Ja) ? (Ja) (Ja)

Compatibility notes

  • Starting with Firefox 48 (Firefox 48 / Thunderbird 48 / SeaMonkey 2.45), 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 (Bug 1253016).

See also