2017-01-21 1 views
1

Principles of Object-Oriented JavaScript를 읽고 나는 저자의 웹 사이트에 무료 장의 page 32의 끝에 다음 행을 가로 질러 온 반면 : 속성이 먼저 객체에 추가됩니다[[설정] 객체의 속성

, 자바 스크립트의 사용 객체에 [[Put]]이라고하는 내부 메소드가 있습니다. [[Put]] 메서드 은 속성을 저장하기 위해 개체에 자리를 만듭니다.

기존 값에 새로운 값이 할당되면 연산 [[Set]]이 수행됩니다. 이 작업은 속성의 현재 값 을 새 값으로 바꿉니다.

인해 [설정]라는 오브젝트의 내부 특성에 여기 발생 라는 데이터 속성의 값을 변경하는 저자 회담. ECMA 5을보고 [[Get]], [[Put]]을 발견했지만 [[Set]] 속성은 없습니다. 그러나 [[Set]] 속성은 객체의 명명 된 접근 자에 사용할 수 있습니다.

제 질문은 [[Set]]이라는 개체 내부 속성이 있습니까? 그렇지 않다면 데이터 속성의 가치 변화는 어떻게 발생합니까? [넣어]로 변경 되었기 때문이다

+0

ES5는 고대이며, 최신 ES2016이며 올해는 ES2017을 얻을 수 있습니다. – Oriol

답변

2

[설정] Early ES6 Working Drafts에서 통상 객체 구체적

  • ES6 Table 5 - Essential Internal Methods
  • 의 ECMAScript 6.

    • ES6 9.1.9 - [[Set]] (P, V, Receiver),

      • Rev 12 (2012 년 11 월 22 일 초안)

        [GetP]/[[SetP]]로 [[Get]]/[[Put]]을 대체했습니다.

      • 계 14 (2013년 3월 8일 초안)

        이름 바꾸기 [[GETP]]에 [[하는] 받기]와 [[SETP]

      • [[설정]]에

      ES5에는 [[Put]] 내부 방법이 있고 [Set] 없음이 있습니다. ES6에는 [[Set]] 내부 방법과 [[Put]]이 없었습니다. 더 많거나 적은 그들은 똑같이 행동합니다.

    +0

    질문을 업데이트했습니다. 한번 봐주세요. 그는 또한 말했습니다. –

    +1

    @BreakingBenjamin 나는 텍스트의 저자가 ES5와 ES6의 차이로 혼란스러워했다고 생각한다 – Oriol

    +0

    그래서 ES6에 따르면 두 가지 목적 (설정 및 변경) [설정]이 사용 되었습니까? –

    관련 문제