열거 및 개체 속성을 통과 ES6

1.Object.getOwnPropertyDescriptor ()

설명 : 개체 속성의 객체에 대한 설명.

OBJ = {foo는 : (123)를 보자 }; 
CONSOLE.LOG (Object.getOwnPropertyDescriptor (OBJ, 'foo는'))

결과 표시 :

{ 
    구성 : 사실 
    열거 : 진정한 
    가치 : 123 
    쓰기 : 사실 
    __proto__ : 개체 
}

열거 속성이 false 인 경우, 그것은 특정 작업이 현재 속성을 무시한다는 것을 의미, 열거 속성을했다.

현재 네 개의 운영이 무시가 열거가 잘못된 속성입니다.

  • 용 루프 : 만 개체 자체 및 상속 열거 속성을 통과.
  • Object.keys는 () : 모든 키 열거 속성의 개체 자체의 이름을 돌려줍니다. 사용이 개체를 통과!
  • JSON.stringify () : 만 개체 자체는 열거 속성을 직렬화 할 수있다.
  • Object.assign () : 열거 속성을 무시 객체의 자신의 열거 속성의 거짓 만 카피
Object.getOwnPropertyDescriptor (Object.prototype에 'toString'). Enumerable에서 // false로 
 
Object.getOwnPropertyDescriptor ([], '길이'). Enumerable에서 // false로 

//의 toString Enumerable에서, 길이 속성은 이처럼, 거짓 ... 모두가 프로토 타입 속성에서 상속 통과하지.

2. Object.getOwnPropertyDescriptors ()

Object.getOwnPropertyDescriptors 방법 지정된 객체 자체 객체를 묘사하는 모든 속성 (상속 속성).

const를 OBJ = {foo는 : 123,받을 줄 () { 반환 'ABC' }}; 
 
Object.getOwnPropertyDescriptors (OBJ) 

// {foo는 : 
//     {값 : 123, 
//       쓰기 : 사실, 
//       열거 : 사실 
//       구성 : TRUE}, 
//    막대 : 
//     {얻을 : [기능 : 바 ]은, 
//       설정 : 정의되지 않은, 
//       열거 : 사실 
//       구성 : TRUE}}

위의 코드에서, Object.getOwnPropertyDescriptors(obj)방법은, 오브젝트를 반환 이름은 모든 원래 객체의 속성 이름 속성있는 오브젝트에 대응하는 속성 값을 속성을 기술한다.

 

3.  Object.setPrototypeOf ()

객체의 프로토 타입 객체를 설정하십시오.

// 형식 
Object.setPrototypeOf (개체 프로토 타입) 
 
// 사용 
CONST = O Object.setPrototypeOf ({}, 널 (null) ); 

// 이 방법은 다음과 같은 기능에 해당합니다. 
함수 (OBJ, 프로토) {    
    OBJ .__ proto__ = 프로토;   
     리턴 OBJ; 
}

예를 들면 :

따라서 년 = {}; 
년 OBJ = {X : 10 }; 
Object.setPrototypeOf (V 정도); 
 
proto.y = 20 ; 
proto.z = 40 ; 
 
obj.x // 10 
무승부의 볼륨 // 20 
obj.z // (40)

참고 :

  1. 첫 번째 인수가 객체가 아닌 경우 자동으로 객체로 변환됩니다. 첫 번째 매개 변수가 반환되기 때문에, 그래서 작업이 영향을주지 않습니다.

  2. 정의 및 널이 오브젝트로 변환 될 수 없기 때문에, 최초의 파라미터가 정의하거나 널인 경우 그래서, 에러 것이다.

4.  Object.getPrototypeOf ()

방법 및 Object.setPrototypeOf프로토 타입 객체를 판독하기위한 개체를 지원하는 방법.

Object.getPrototypeOf (OBJ); 
  1. 매개 변수가 객체가 아닌 경우, 오브젝트가 자동으로 변환됩니다.

  2. 매개 변수가 정의되지 않았거나 null의 경우, 객체로 변환 할 수 없습니다, 그것은 오류가 될 것입니다.

5.  슈퍼 키워드

우리는 알고있다,이 키워드는 항상 함수를 의미 현재의 오브젝트가 , ES6는 다른 유사한 키워드를 추가했다 슈퍼를 현재 개체의 가리키는, 프로토 타입 객체 .

프로토 foo는 = {const를 : '안녕하세요' }; 
 
const를 OBJ = {    
    () 찾기 {      
        반환 super.foo;    
    } 
}; 

Object.setPrototypeOf (OBJ, 프로토) 
obj.find () // "안녕하세요" 
// 위의 코드 , 중 프로토 타입 객체에 대한 참조로 obj가 방법을 찾을 객체는 프로토 foo는 속성을 super.foo.

슈퍼 키워드가 프로토 타입 객체를 표시, 참고 만 다른 것입니다 제공 됨으로써, 개체의 방법을 사용할 수 있습니다.

내부 자바 스크립트 엔진, super.foo 해당 Object.getPrototypeOf합니다 (이) .foo (속성) 또는 Object.getPrototypeOf합니다 (이) .foo.call합니다 (이) (방법).

예 :

프로토 = CONST {    
    X : '안녕하세요' ,    
    foo는 () {      
        을 console.log ( 다음은이 .x를);    
    } 
}; 
 
const를 OBJ = {    
    X : '세계' ,    
    foo는 () {     
        super.foo ();    
    } 
} 
 
객체 .setPrototypeOf는 (OBJ, 프로토) 
 
obj.foo () // "세계" 

// 위의 코드, 프로토 프로토 타입 객체의 super.foo 점 방식 foo는 있지만, 여전히 현재 개체 (OBJ)에 결합되었다, 출력은 세계.

 

6.  Object.keys () Object.values () Object.entries ()

Object.keys 방법 배열을 반환 객체 자체의 부재 (되지 속됨) 파라미터 모두 이송 (Enumerable에서) 키 속성이다.

VAR OBJ = {foo는 '바', 바즈 : 42 }; 
Object.keys (OBJ) // [ "foo는", "바즈"] 

 

ES2017은 도입 Object.keys을 지원 Object.values하고 Object.entries, 물체를 통과하는 보충 을위한 중 ... 재활용의

Object.values 방법 배열을 반환 객체 자체의 부재 (되지 속됨) 파라미터 모두 이송 (Enumerable에서) 키 속성이다.

CONST OBJ = {100 : 'A', 2 ', B', 7 'C' }; 
Object.values (OBJ) // [ "B", "C", "A"] 

위의 코드에서, 호출 속성 값은 수치에 따라, 소형에서 대규모로 이송 시퀀스는 B, C, A를 반환하도록.

Object.values는 객체의 자신의 속성을 반복 할 수 있습니다 반환합니다.

 

Object.entries 방법은 배열을 반환 객체 자체의 부재 (되지 속됨) 파라미터 모두 이송 (Enumerable에서) 특성 키 배열이다.

CONST OBJ = {foo를 '바'바즈 42 }; 
Object.entries (OBJ) // [ "foo에", "바"], [ "바즈"42]

리턴 값 이외에 동일하지 않으며, 이러한 방법의 Object.values ​​동작은 기본적으로 동일하다.

 

 

추천

출처www.cnblogs.com/houfee/p/11271003.html