--- title: Object.prototype.__defineGetter__() slug: Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__ translation_of: Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__ ---
이 기능은 object initializer 문법 혹은 {{jsxref("Object.defineProperty()")}} API를 사용한 getter 정의가 표준화됨으로써 비표준화되었습니다.
이 기능은 이제까지의 ECMAScript 사양에서만 사용되고 있습니다.
보다 좋은 방법이 있으므로, 이 메소드는 사용하지 말아야합니다.
__defineGetter__
메소드는 오브젝트의 프로퍼티와 함수를 바인드합니다.
프로퍼티의 값이 조회될 때 바인드된 함수가 호출됩니다.
obj.__defineGetter__(prop, func)
prop
func
{{jsxref("undefined")}}.
__defineGetter__
를 사용하여 기존 오브젝트의 {{jsxref("Operators/get", "getter", "", 1)}}를 사용할 수 있습니다.
// Non-standard and deprecated way var o = {}; o.__defineGetter__('gimmeFive', function() { return 5; }); console.log(o.gimmeFive); // 5 // Standard-compliant ways // Using the get operator var o = { get gimmeFive() { return 5; } }; console.log(o.gimmeFive); // 5 // Using Object.defineProperty var o = {}; Object.defineProperty(o, 'gimmeFive', { get: function() { return 5; } }); console.log(o.gimmeFive); // 5
Specification | Status | Comment |
---|---|---|
{{SpecName('ESDraft', '#sec-object.prototype.__defineGetter__', 'Object.prototype.__defineGetter__()')}} | {{Spec2('ESDraft')}} | Included in the (normative) annex for additional ECMAScript legacy features for Web browsers (note that the specification codifies what is already in implementations). |
{{Compat("javascript.builtins.Object.defineGetter")}}