Object.prototype.__defineGetter__()

Ця функціональність не рекомендована до використання на користь визначення гетерів за допомогою синтаксису ініціалізації об'єктів або API Object.defineProperty(). Хоча ця функціональність широко реалізована, вона описана у специфікації ECMAScript тільки задля legacy-використання. Цей метод не бажано використовувати, оскільки існують кращі альтернативи.

Метод __defineGetter__ прив'язує властивість об'єкта до функції, яка викликатиметься під час звернення до властивості.

Синтаксис

obj.__defineGetter__(prop, func)

Параметри

prop
Рядок, що містить ім'я властивості, яку треба прив'язати до наданої функції.
func
Функція, що прив'язується до вказаної властивості.

Значення, що повертається

Опис

Метод __defineGetter__ дозволяє визначити гетер на існуючому об'єкті.

Приклади

// Нестандартний та не рекомендований спосіб

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


// Стандартні способи

// Використання оператора get
var o = { get gimmeFive() { return 5; } };
console.log(o.gimmeFive); // 5

// Використання Object.defineProperty
var o = {};
Object.defineProperty(o, 'gimmeFive', {
  get: function() {
    return 5;
  }
});
console.log(o.gimmeFive); // 5

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

Специфікація Статус Коментар
ECMAScript (ECMA-262)
The definition of 'Object.prototype.__defineGetter__()' in that specification.
Living Standard Включено у (нормативний) додаток для додаткової legacy-функціональності ECMAScript для веб-переглядачів (зауважте, що специфікація кодифікує те, що вже реалізовано).

Сумісність з веб-переглядачами

BCD tables only load in the browser

Див. також