대상의 기능 확장-understanding ECMAScipt6 독서노트4

2509 단어

객체 분류


ES6는 객체를 다음과 같은 범주로 분류합니다.
  • 일반 대상
  • 외부 대상
  • 표준 대상
  • 내장 대상
  • 대상의 글자 크기 확장


    키의 이름이 (value의 변수 이름)과 같을 때 간략하게 쓸 수 있습니다

    function (name,age){
        return {
            name,
            age
        }
    }
    

    글자의 양 안에 있는 방법의 명칭은 간략하게 쓸 수 있다

    var obj = {
      getValue(){
          //       
      }
    }
    

    계산 속성 이름


    처음에 회사 환경이ES5였을 때 제가 이 구덩이를 밟았던 기억이 납니다. 저는 정부에서 이걸 지지할 거라고 생각했어요. but...
    var a = Symbol();
    var obj = {
        [a] : 666 
    }
    

    새로운 방법


    Object.is()


    전통적인 === you 두 가지 질문:
  • -0 === +0
  • NaN !== NaN

  • Object.is()는 이 두 문제를 해결했다.두 개의 매개 변수를 전송하여 각각 비교의 양쪽이다

    Object.assign()


    그동안 두 대상을 하나의 대상으로 통합하기 위해 얕은 복사 함수를 스스로 써야 했다.Object.assign ()이 이 문제를 해결했다.n개의 매개 변수를 입력할 수 있습니다. 첫 번째 매개 변수는receiver이고, 다른 매개 변수는 순서대로 속성과 방법을receiver에 추가합니다.
  • 같은 이름이 나타날 때 뒤에 있는 것이 앞의 것을 덮어씁니다.//윗글에서 순서대로 이 두 글자를 주의하면 된다
  • 간단한 복제
  • 액세스기는 복제하지 않습니다. 예를 들어 get은 액세스기만 단순한 데이터 속성으로 복제합니다
  • 대상의 글자 양의 속성 중명

    var obj = {
        'a': 1,
        'a': 2
    }
    

    위의 코드는 ES5 엄격 모드에서 오류가 발생하며 ES6는 기본적으로 뒤로 덮어씁니다.//개인적으로 이렇게 하는 것이 논리에 더 부합된다고 생각한다.

    속성의 열거 순서


    정렬 규칙
  • 숫자 속성, 문자열 속성, Symbols 속성 순으로 정렬
  • 숫자 속성은 오름차순으로 배열되고 큰 줄 뒤
  • 문자열 속성은 추가 순서에 따라 배열하고 추가 순서는 뒤에 놓기
  • Symbols 속성은 추가된 순서대로 정렬하고 추가된 것은 뒤에 놓기
  • 영향의 방법
  • Object.getOwnPropertyNames()
  • Reflect.ownKeys()
  • Object.assign()

  • 영향 받지 않는 방법
  • for in
  • Object.keys()
  • JSON.stringify()

  • Object.setPrototypeOf()


    ES5는 Object.getPrototypeOf()를 제공했고 내부 방법[[[Prototype]]의 값을 읽었으며 ES6는 더욱 진일보하여 Object.setPrototypeOf() 방법을 제공했다.두 개의 매개 변수, 1참은 대상이고, 2참은 원형이다.

    super 키워드


    이 대상의 원형을 가져오는 데 사용합니다Object,getPrototypeOf().주: 이 키워드는 간략하게 쓰는 방법에만 사용할 수 있습니다. 아래와 같습니다.
    let person = {
      getSuper(){
        return Super;
      }
    }
    
    Object.getPrototypeOf(this)를 통해서도 super의 효과를 얻을 수 있지만 Object.getPrototype(this)this 키워드에 의존하고 this 키워드는 어떤 상황에서 자신을 가리키지 않는다.super 내부 방법 [[HomeObject]에 의존하여 저장된 Prototype의 이름입니다.

    좋은 웹페이지 즐겨찾기