번역이 완료되지 않았습니다. Please help translate this article from English

이 기능은 object initializer 문법 혹은 Object.defineProperty() API를 사용한 getter 정의가 표준화됨으로써 비표준화되었습니다.
이 기능은 이제까지의 ECMAScript 사양에서만 사용되고 있습니다.
보다 좋은 방법이 있으므로, 이 메소드는 사용하지 말아야합니다.

__defineGetter__ 메소드는 오브젝트의 프로퍼티와 함수를 바인드합니다.
프로퍼티의 값이 조회될 때 바인드된 함수가 호출됩니다.


obj.__defineGetter__(prop, func)


함수와 바인드된 프로퍼티의 이름을 나타내는 문자열
프로퍼티 값이 조회되었을 때 호출되는 함수

리턴 값



__defineGetter__ 를 사용하여 기존 오브젝트의 getter를 사용할 수 있습니다.


// 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
ECMAScript (ECMA-262)
The definition of 'Object.prototype.__defineGetter__()' in that specification.
Living Standard Included in the (normative) annex for additional ECMAScript legacy features for Web browsers (note that the specification codifies what is already in implementations).

Browser compatibility

Update compatibility data on GitHub
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
Chrome Full support 1Edge Full support 12Firefox Full support 1
Full support 1
Notes Starting with Firefox 48, this method can no longer be called at the global scope without any object. A TypeError will be thrown otherwise. Previously, the global object was used in these cases automatically, but this is no longer the case.
IE Full support 11Opera Full support 9.5Safari Full support 3WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support Yes


Full support  
Full support
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.
See implementation notes.
See implementation notes.

See also