From 31fd3596c48ddaf6898c21ed6307545e317a8388 Mon Sep 17 00:00:00 2001 From: hochan222 Date: Wed, 28 Jul 2021 22:06:49 +0900 Subject: @hochan222 feat: convert html to markdown, Enumerability_and_ownership_of_properties --- .../index.md | 626 +++++++++++++-------- 1 file changed, 381 insertions(+), 245 deletions(-) (limited to 'files/ko') diff --git a/files/ko/web/javascript/enumerability_and_ownership_of_properties/index.md b/files/ko/web/javascript/enumerability_and_ownership_of_properties/index.md index 41252c39d1..8f4155cf84 100644 --- a/files/ko/web/javascript/enumerability_and_ownership_of_properties/index.md +++ b/files/ko/web/javascript/enumerability_and_ownership_of_properties/index.md @@ -1,173 +1,308 @@ --- title: Enumerability and ownership of properties slug: Web/JavaScript/Enumerability_and_ownership_of_properties +tags: + - Guide + - JavaScript translation_of: Web/JavaScript/Enumerability_and_ownership_of_properties --- -
{{JsSidebar("More")}}
+{{JsSidebar("More")}} +'Enumerable properties'(열거 가능한 속성)는 내부 열거 형 플래그가 true로 설정된 property로, 이는 간단한 할당 또는 property initializer ([Object.defineProperty](/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty)를 통해 정의 된 특성 및 이러한 기본 열거 형을 false로 정의한 특성)를 통해 작성된 property의 기본값입니다. +등록 정보의 키가 [Symbol](/ko/docs/Web/JavaScript/Reference/Global_Objects/Symbol)이 아니면 열거 가능한 등록 정보가 [for...in](/ko/docs/Web/JavaScript/Reference/Statements/for...in) 루프에 표시됩니다. 'Ownership of properties' (속성의 소유권)은 속성이 프로토 타입 체인이 아닌 개체에 직접 속하는지 여부에 따라 결정됩니다. 객체의 속성도 전체적으로 검색 할 수 있습니다. 개체 속성을 감지, 반복 / 열거 및 검색하는 여러 가지 기본 제공 방법이 있으며 아래 표와 같이 사용할 수 있습니다. 누락 된 범주를 얻는 방법을 보여주는 샘플 코드는 다음과 같습니다. -

'Enumerable properties'(열거 가능한 속성)는 내부 열거 형 플래그가 true로 설정된 property로, 이는 간단한 할당 또는 property initializer (Object.defineProperty를 통해 정의 된 특성 및 이러한 기본 열거 형을 false로 정의한 특성)를 통해 작성된 property의 기본값입니다. 등록 정보의 키가 Symbol이 아니면 열거 가능한 등록 정보가 for...in 루프에 표시됩니다. 'Ownership of properties' (속성의 소유권)은 속성이 프로토 타입 체인이 아닌 개체에 직접 속하는지 여부에 따라 결정됩니다. 객체의 속성도 전체적으로 검색 할 수 있습니다. 개체 속성을 감지, 반복 / 열거 및 검색하는 여러 가지 기본 제공 방법이 있으며 아래 표와 같이 사용할 수 있습니다. 누락 된 범주를 얻는 방법을 보여주는 샘플 코드는 다음과 같습니다.

+## 객체 속성 감지, 검색 및 열거 -
- - - - - - - - - - - - - - - - - - - - - - - - -
Property enumerability and ownership - built-in methods of detection, retrieval, and iteration
FunctionalityOwn objectOwn object and its prototype chainPrototype chain only
Detection - - - - - - - - - - - - - - - -
EnumerableNonenumerableEnumerable and Nonenumerable
-

propertyIsEnumerable

- -

hasOwnProperty

-
-

hasOwnProperty – filtered to exclude enumerables using propertyIsEnumerable

-
hasOwnProperty
-
- - - - - - - - - - - - - - - -
EnumerableNonenumerableEnumerable and Nonenumerable
Not available without extra codeNot available without extra codein
-
Not available without extra code
Retrieval - - - - - - - - - - - - - - - -
EnumerableNonenumerableEnumerable and Nonenumerable
-

Object.keys

- -

getOwnPropertyNames 

+개체 속성을 감지, 반복/열거 및 검색하는 여러 가지 기본 제공 수단이 있습니다. 아래 표에 요약되어 있습니다. -

getOwnPropertySymbols

-
getOwnPropertyNames, getOwnPropertySymbols – filtered to exclude enumerables using propertyIsEnumerable -

getOwnPropertyNames

+### Detection -

getOwnPropertySymbols

-
-
Not available without extra codeNot available without extra code
Iterable - - - - - - - - - - - - - - - -
EnumerableNonenumerableEnumerable and Nonenumerable
-

Object.keys

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Own objectOwn object and prototype chainPrototype chain only
Enumerable +

+ propertyIsEnumerable +

+

+ hasOwnProperty +

+
Not available without extra codeNot available without extra code
Nonenumerable +

+ hasOwnProperty + – filtered to exclude enumerables using + propertyIsEnumerable +

+
Not available without extra codeNot available without extra code
Enumerable and Nonenumerable +

+ hasOwnProperty +

+
+ in + Not available without extra code
-

getOwnPropertyNames 

+### Retrieval -

getOwnPropertySymbols

-
getOwnPropertyNames, getOwnPropertySymbols – filtered to exclude enumerables using propertyIsEnumerable -

getOwnPropertyNames

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Own objectOwn object and prototype chainPrototype chain only
Enumerable +

+ Object.keys +

+

+ getOwnPropertyNames  +

+

+ getOwnPropertySymbols +

+
Not available without extra codeNot available without extra code
Nonenumerable + getOwnPropertyNames, + getOwnPropertySymbols + – filtered to exclude enumerables using propertyIsEnumerable + Not available without extra codeNot available without extra code
Enumerable and Nonenumerable +

+ getOwnPropertyNames +

+

+ getOwnPropertySymbols +

+
Not available without extra codeNot available without extra code
-

getOwnPropertySymbols

-
-
- - - - - - - - - - - - - - + + + + + + + + + + + + + + + +
EnumerableNonenumerableEnumerable and Nonenumerable
-

for..in

+### Iteration + + + + + + + + + + + + + + - - - - -
Own objectOwn object and prototype chainPrototype chain only
Enumerable +

+ Object.keys +

+

+ getOwnPropertyNames  +

+

+ getOwnPropertySymbols +

+
+

+ for..in +

(excluding symbols)

-
Not available without extra codeNot available without extra code
-
Not available without extra code
Not available without extra code
Nonenumerable + getOwnPropertyNames, + getOwnPropertySymbols + – filtered to exclude enumerables using propertyIsEnumerable + Not available without extra codeNot available without extra code
Enumerable and Nonenumerable +

+ getOwnPropertyNames +

+

+ getOwnPropertySymbols +

+
Not available without extra codeNot available without extra code
- - -

Obtaining properties by enumerability/ownership

- +## Obtaining properties by enumerability/ownership -

아래는 모든 경우에 가장 효율적인 알고리즘은 아니지만 빠르게 코드를 작성하여 확인하기 좋습니다.

+아래는 모든 경우에 가장 효율적인 알고리즘은 아니지만 빠르게 코드를 작성하여 확인하기 좋습니다. -
    -
  • Detection can occur by SimplePropertyRetriever.theGetMethodYouWant(obj).indexOf(prop) > -1
  • -
  • Iteration can occur by SimplePropertyRetriever.theGetMethodYouWant(obj).forEach(function (value, prop) {}); (or use filter(), map(), etc.)
  • -
+- Detection can occur by `SimplePropertyRetriever.theGetMethodYouWant(obj).indexOf(prop) > -1` +- Iteration can occur by `SimplePropertyRetriever.theGetMethodYouWant(obj).forEach(function (value, prop) {});` (or use` filter()`, `map()`, etc.) -
var SimplePropertyRetriever = {
+```js
+var SimplePropertyRetriever = {
     getOwnEnumerables: function(obj) {
         return this._getPropertyNames(obj, true, false, this._enumerable);
          // Or could use for..in filtered with hasOwnProperty or just this: return Object.keys(obj);
@@ -215,7 +350,7 @@ translation_of: Web/JavaScript/Enumerability_and_ownership_of_properties
         do {
             if (iterateSelfBool) {
                 Object.getOwnPropertyNames(obj).forEach(function(prop) {
-                    if (props.indexOf(prop) === -1 && includePropCb(obj, prop)) {
+                    if (props.indexOf(prop) === -1 && includePropCb(obj, prop)) {
                         props.push(prop);
                     }
                 });
@@ -228,104 +363,105 @@ translation_of: Web/JavaScript/Enumerability_and_ownership_of_properties
 
         return props;
     }
-};
+}; +``` -

Detection Table

+## Detection Table -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
infor..inobj.hasOwnPropertyobj.propertyIsEnumerableObject.keysObject.getOwnPropertyNamesObject.getOwnPropertyDescriptorsReflect.ownKeys()
Enumerabletruetruetruetruetruetruetruetrue
Nonenumerabletruefalsetruefalsefalsetruetruetrue
Symbols keystruefalsetruetruefalsefalsetruetrue
Inherited Enumerabletruetruefalsefalsefalsefalsefalsefalse
Inherited Nonenumerabletruefalsefalsefalsefalsefalsefalsefalse
Inherited Symbols keystruefalsefalsefalsefalsefalsefalsefalse
EnumerableNonenumerableSymbols keysInherited EnumerableInherited NonenumerableInherited Symbols keys
intruetruetruetruetruetrue
for..intruefalsefalsetruefalsefalse
obj.hasOwnPropertytruetruetruefalsefalsefalse
obj.propertyIsEnumerabletruefalsetruefalsefalsefalse
Object.keystruefalsefalsefalsefalsefalse
Object.getOwnPropertyNamestruetruefalsefalsefalsefalse
Object.getOwnPropertyDescriptorstruetruetruefalsefalsefalse
Reflect.ownKeys()truetruetruefalsefalsefalse
-
-

See also

+## 같이보기 -
    -
  • in
  • -
  • for..in
  • -
  • {{jsxref("Object.hasOwnProperty()")}}
  • -
  • {{jsxref("Object.propertyIsEnumerable()")}}
  • -
  • {{jsxref("Object.getOwnPropertyNames()")}}
  • -
  • {{jsxref("Object.keys()")}}
  • -
  • {{jsxref("Object.getOwnPropertyDescriptors()")}}
  • -
+- [`in`](/ko/docs/Web/JavaScript/Reference/Operators/in) +- [`for..in`](/ko/docs/Web/JavaScript/Reference/Statements/for...in) +- {{jsxref("Object.hasOwnProperty()")}} +- {{jsxref("Object.propertyIsEnumerable()")}} +- {{jsxref("Object.getOwnPropertyNames()")}} +- {{jsxref("Object.keys()")}} +- {{jsxref("Object.getOwnPropertyDescriptors()")}} -- cgit v1.2.3-54-g00ecf