--- title: Object.prototype.__defineGetter__() slug: Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__ tags: - JavaScript - Method - Non-standard - Object - Prototype - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__ --- <div>{{JSRef("Global_Objects", "Object")}} {{non-standard_header}} {{deprecated_header}}</div> <h2 id="Summary">Сводка</h2> <p>Метод <strong><code>__defineGetter__()</code></strong> привязывает свойство объекта к функции, вызываемой каждый раз при поиске этого свойства.</p> <h2 id="Syntax">Синтаксис</h2> <pre class="syntaxbox"><code><var>obj</var>.__defineGetter__(<var>prop</var>, <var>func</var>)</code></pre> <h3 id="Parameters">Параметры</h3> <dl> <dt><code>prop</code></dt> <dd>Строка, содержащая имя свойства, привязываемого к заданной функции.</dd> <dt><code>func</code></dt> <dd>Функция, привязываемая к поиску указанного свойства.</dd> </dl> <h2 id="Description">Описание</h2> <p>Метод <code>__defineGetter__()</code> позволяет определить {{jsxref("Operators/get", "геттер", "", 1)}} на уже существующем объекте.</p> <h2 id="Examples">Примеры</h2> <pre class="brush: js">// Нестандартный и устаревший способ 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 </pre> <h2 id="Specifications">Спецификации</h2> <p>Не является частью какой-либо спецификации.</p> <h2 id="Browser_compatibility">Совместимость с браузерами</h2> <p>{{Compat}}</p> <h2 id="See_also">Смотрите также</h2> <ul> <li>{{jsxref("Object.prototype.__defineSetter__()")}}</li> <li>оператор {{jsxref("Operators/get", "get")}}</li> <li>{{jsxref("Object.defineProperty()")}}</li> <li>{{jsxref("Object.prototype.__lookupGetter__()")}}</li> <li>{{jsxref("Object.prototype.__lookupSetter__()")}}</li> <li><a href="ru/docs/Web/JavaScript/Guide_ru/Working_with_Objects#.D0.9E.D0.BF.D1.80.D0.B5.D0.B4.D0.B5.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_.D0.B3.D0.B5.D1.82.D1.82.D0.B5.D1.80.D0.BE.D0.B2_.D0.B8_.D1.81.D0.B5.D1.82.D1.82.D0.B5.D1.80.D0.BE.D0.B2">Руководство по JS: определение геттеров и сеттеров</a></li> <li><a href="http://whereswalden.com/2010/04/16/more-spidermonkey-changes-ancient-esoteric-very-rarely-used-syntax-for-creating-getters-and-setters-is-being-removed/">[Запись в блоге] Устаревание __defineGetter__ и __defineSetter__</a> (англ.)</li> <li>{{bug(647423)}}</li> </ul>