This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

Object.prototype.__defineGetter__()

Deprecated

Avoid using this feature in new projects. TC39 included accessor methods in Annex B of the ECMAScript specification, which covers JavaScript features with "one or more undesirable characteristics and in the absence of legacy usage would be removed." This feature may be a candidate for removal from web standards or browsers.

Не стандартно: Эта функция не стандартизирована. Мы не рекомендуем использовать нестандартные функции в действующих проектах, так как их поддержка браузерами ограничена, а поведение может измениться или быть удалено. Тем не менее, в некоторых случаях, когда нет стандартного решения, они могут быть подходящей альтернативой.

Сводка

Метод __defineGetter__() привязывает свойство объекта к функции, вызываемой каждый раз при поиске этого свойства.

Синтаксис

obj.__defineGetter__(prop, func)

Параметры

prop

Строка, содержащая имя свойства, привязываемого к заданной функции.

func

Функция, привязываемая к поиску указанного свойства.

Описание

Метод __defineGetter__() позволяет определить геттер на уже существующем объекте.

Примеры

js
// Нестандартный и устаревший способ

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

// Способы, совместимые со стандартом

// Использование оператора get
const o = {
  get gimmeFive() {
    return 5;
  },
};
console.log(o.gimmeFive); // 5

// Использование Object.defineProperty()
const o = {};
Object.defineProperty(o, "gimmeFive", {
  get: function () {
    return 5;
  },
});
console.log(o.gimmeFive); // 5

Спецификации

Не является частью какой-либо спецификации.

Совместимость с браузерами

Смотрите также