aboutsummaryrefslogtreecommitdiff
path: root/files/ko/web/javascript/reference/global_objects/reflect/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/ko/web/javascript/reference/global_objects/reflect/index.html')
-rw-r--r--files/ko/web/javascript/reference/global_objects/reflect/index.html106
1 files changed, 106 insertions, 0 deletions
diff --git a/files/ko/web/javascript/reference/global_objects/reflect/index.html b/files/ko/web/javascript/reference/global_objects/reflect/index.html
new file mode 100644
index 0000000000..728dcd74c3
--- /dev/null
+++ b/files/ko/web/javascript/reference/global_objects/reflect/index.html
@@ -0,0 +1,106 @@
+---
+title: Reflect
+slug: Web/JavaScript/Reference/Global_Objects/Reflect
+tags:
+ - ECMAScript 2015
+ - JavaScript
+ - Reference
+ - Reflect
+translation_of: Web/JavaScript/Reference/Global_Objects/Reflect
+---
+<div>{{JSRef}}</div>
+
+<p><code><strong>Reflect</strong></code>는 중간에서 가로챌 수 있는 JavaScript 작업에 대한 메서드를 제공하는 내장 객체입니다. 메서드의 종류는 <a href="/ko/docs/Web/JavaScript/Reference/Global_Objects/Proxy/handler">프록시 처리기</a>와 동일합니다. <code>Reflect</code>는 함수 객체가 아니므로 생성자로 사용할 수 없습니다.</p>
+
+<h2 id="설명">설명</h2>
+
+<p>다른 대부분의 전역 객체와 다르게, <code>Reflect</code>는 생성자가 아닙니다. 따라서 함수처럼 호출하거나 <a href="/ko/docs/Web/JavaScript/Reference/Operators/new"><code>new</code> 연산자</a>로 인스턴스를 만들 수 없습니다. {{jsxref("Math")}} 객체처럼, <code>Reflect</code>의 모든 속성과 메서드는 정적입니다.</p>
+
+<p><code>Reflect</code> 객체의 정적 메서드 이름은 <a href="/ko/docs/Web/JavaScript/Reference/Global_Objects/Proxy/handler">프록시 처리기 메서드</a>의 이름과 같습니다.</p>
+
+<p>일부 메서드는 {{jsxref("Object")}}에도 존재하는 메서드이지만 <a href="/ko/docs/Web/JavaScript/Reference/Global_Objects/Reflect/Comparing_Reflect_and_Object_methods">약간의 차이</a>가 있습니다.</p>
+
+<h2 id="정적_메서드">정적 메서드</h2>
+
+<dl>
+ <dt>{{jsxref("Reflect.apply()")}}</dt>
+ <dd>대상 함수를 주어진 매개변수로 호출합니다. {{jsxref("Function.prototype.apply()")}}도 참고하세요.</dd>
+ <dt>{{jsxref("Reflect.construct()")}}</dt>
+ <dd>함수로 사용하는 <a href="/ko/docs/Web/JavaScript/Reference/Operators/new"><code>new</code> 연산자</a>입니다. <code>new target(...args)</code>을 호출하는 것과 같습니다. 다른 프로토타입을 지정하는 추가 기능도 가지고 있습니다.</dd>
+ <dt>{{jsxref("Reflect.defineProperty()")}}</dt>
+ <dd>{{jsxref("Object.defineProperty()")}}와 비슷합니다. {{jsxref("Boolean")}}을 반환합니다.</dd>
+ <dt>{{jsxref("Reflect.deleteProperty()")}}</dt>
+ <dd>함수로 사용하는 <a href="/ko/docs/Web/JavaScript/Reference/Operators/delete"><code>delete</code> 연산자</a>입니다. <code>delete target[name]</code>을 호출하는 것과 같습니다.</dd>
+ <dt>{{jsxref("Reflect.get()")}}</dt>
+ <dd>대상 속성의 값을 반환하는 함수입니다.</dd>
+ <dt>{{jsxref("Reflect.getOwnPropertyDescriptor()")}}</dt>
+ <dd>{{jsxref("Object.getOwnPropertyDescriptor()")}}와 비슷합니다. 주어진 속성이 대상 객체에 존재하면, 그 속성의 서술자를 반환합니다. 그렇지 않으면 {{jsxref("undefined")}}를 반환합니다.</dd>
+ <dt>{{jsxref("Reflect.getPrototypeOf()")}}</dt>
+ <dd>{{jsxref("Object.getPrototypeOf()")}}와 같습니다.</dd>
+ <dt>{{jsxref("Reflect.has()")}}</dt>
+ <dd>함수로 사용하는 <a href="/ko/docs/Web/JavaScript/Reference/Operators/in"><code>in</code> 연산자</a>입니다. 자신의, 혹은 상속한 속성이 존재하는지 나타내는 {{jsxref("Boolean")}}을 반환합니다.</dd>
+ <dt>{{jsxref("Reflect.isExtensible()")}}</dt>
+ <dd>{{jsxref("Object.isExtensible()")}}과 같습니다.</dd>
+ <dt>{{jsxref("Reflect.ownKeys()")}}</dt>
+ <dd>대상 객체의 자체 키(상속하지 않은 키) 목록을 배열로 반환합니다.</dd>
+ <dt>{{jsxref("Reflect.preventExtensions()")}}</dt>
+ <dd>{{jsxref("Object.preventExtensions()")}}와 비슷합니다. {{jsxref("Boolean")}}을 반환합니다.</dd>
+ <dt>{{jsxref("Reflect.set()")}}</dt>
+ <dd>속성에 값을 할당하는 함수입니다. 할당 성공 여부를 나타내는 {{jsxref("Boolean")}}을 반환합니다.</dd>
+ <dt>{{jsxref("Reflect.setPrototypeOf()")}}</dt>
+ <dd>객체의 프로토타입을 지정하는 함수입니다. 지정 성공 여부를 나타내는 {{jsxref("Boolean")}}을 반환합니다.</dd>
+</dl>
+
+<h2 id="명세">명세</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-reflect-object', 'Reflect')}}</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="예제">예제</h2>
+
+<h3 id="객체가_특정_속성을_가지고_있는지_검사하기">객체가 특정 속성을 가지고 있는지 검사하기</h3>
+
+<pre class="brush: js notranslate">const duck = {
+ name: 'Maurice',
+ color: 'white',
+ greeting: function() {
+ console.log(`Quaaaack! My name is ${this.name}`);
+ }
+}
+
+Reflect.has(duck, 'color');
+// true
+Reflect.has(duck, 'haircut');
+// false</pre>
+
+<h3 id="객체_자체_키를_반환하기">객체 자체 키를 반환하기</h3>
+
+<pre class="brush: js notranslate">Reflect.ownKeys(duck);
+// [ "name", "color", "greeting" ]</pre>
+
+<h3 id="객체에_새로운_속성_추가하기">객체에 새로운 속성 추가하기</h3>
+
+<pre class="brush: js notranslate">Reflect.set(duck, 'eyes', 'black');
+// returns "true" if successful
+// "duck" now contains the property "eyes: 'black'"</pre>
+
+<h2 id="브라우저_호환성">브라우저 호환성</h2>
+
+
+
+<p>{{Compat("javascript.builtins.Reflect")}}</p>
+
+<h2 id="같이_보기">같이 보기</h2>
+
+<ul>
+ <li>{{jsxref("Proxy")}} 전역 객체.</li>
+ <li>{{jsxref("Proxy.handler", "handler")}} 객체.</li>
+</ul>