Не стандартно
Эта возможность не является стандартной и стандартизировать её пока никто не собирается. Не используйте её на сайтах, смотрящих во внешний мир: она будет работать не у всех пользователей. Также могут присутствовать большие несовместимости между реализациями и её поведение может в будущем измениться.
Устарело
Эта возможность была удалена из веб-стандартов. Хотя некоторые браузеры по-прежнему могут поддерживать её, она находится в процессе удаления. Не используйте её ни в старых, ни в новых проектах. Страницы или веб-приложения, использующие её, могут в любой момент сломаться.
Сводка
Метод __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
Спецификации
Не является частью какой-либо спецификации.
Совместимость с браузерами
Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Базовая поддержка | (Да) | (Да) | 11 | (Да) | (Да) |
Возможность | Android | Chrome для Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Базовая поддержка | (Да) | (Да) | (Да) | ? | (Да) | (Да) |