서문
인 ECMAScript는 클래스의 개념이 없다, 그래서 자신의 객체와 클래스 기반 언어의 객체는 다르다.
ECMA-262는 물체로 정의된다 넣어 ".베이스 값, 객체 또는 함수를 포함 할 수있다 속성 순서화 세트" 이 때문에, 우리는 ECMAScript를 해시 테이블 생각할 수
값 데이터 나 기능을 할 수있는 이름 값 쌍들의 세트에 지나지,
각 개체가 참조 형식에 기초하지 생성되고, 상기 기준 유형의 제 5 장에서 설명 될 수있다 기본 형태는, 입력이 현상에 의해 정의 될 수있다
-appreciated 대상
-attribute 유형
ECMA-262 만 시간의 지정된 특성 만 내부에서 다양한 기능을 정의하고, 속성에 대하여 설명한다. ECMA-262은 자바 스크립트 따라서 이러한 특성은 자바 스크립트 엔진을 달성하는 데 사용되는 정의
직접 액세스 할 수 없습니다. 예를 들어 내부 특성치 아이들 두 쌍의 대괄호에 넣어이 사양을 표시하려면 [Enumerable에서들은]
1. 데이터는 속성
데이터의 위치 값을 포함하는 데이터의 속성. 당신은 읽고이 위치에 쓸 수 있습니다. 4 개 개의 데이터 속성은 동작 특성이 설명합니다 있습니다
속성이 속성, 속성의 특성을 수정하거나 속성이 속성에 액세스 수정할 수있는 기능을 재정의하기 위해 전달 될 수 있습니다 삭제합니다 : ·이 [[CONFIGURABLE가]는.
객체에 정의 된 직접 속성, 그 속성을 true로이 기본 값
· [[Enumerable에서]] : 대한-의 여행을 통해 다시 재활용 여부를 나타냅니다. 사실 기본
· [쓰기 가능] : 등록 여부를 나타내는 값을 수정합니다. true로 기본값은
· [[가치]] :이 속성은 데이터 값이 포함되어 있습니다. 이 위치에서 읽을 때 속성을 읽기, 속성 값이 기록 될 때, 새 값이이 위치에 저장됩니다. 기본이 정의되어
2 액세스 속성
데이터 값을 포함하지 않는 속성 접근 자, 그들은 게터와 세터 함수의 쌍을 포함하는 (그러나, 이들 두 가지 기능은 필요하지 않다).
· [[구성 가능]] : 속성이 속성, 속성의 특성을 수정할 수있는 기능을 재정의하기 위해 전달 될 수있다, 또는 속성이 속성에 액세스하기 위해 수정할 수 있습니다 삭제합니다.
객체에 정의 된 직접 속성, 그 속성을 true로이 기본 값
· [[Enumerable에서]] : 대한-의 여행을 통해 다시 재활용 여부를 나타냅니다. true로 기본
· [[가져 오기]] : 속성을 읽을 때 호출 된 함수. 기본값은 정의되어 있지 않습니다
· [[설정] : 속성을 작성할 때 호출 된 함수. 기본값은 정의되지
ECMAScript를 직접 데이터 속성 또는 속성 접근의 속성을 정의되지 않습니다 · 체험.
개인적인 경험을 바탕으로 :
직접 등록 또는 설정 특성, 그 접근 자 속성을 지정받을 경우. 어떤 하나 개의 데이터 속성 특성이 지정된 경우, 해당 데이터 속성.
false로 구성 가능 설정을하지 않은 경우 데이터 속성 및 액세스 속성을 상호 교환 할 수 있습니다
<script> var에 사람 = {이름 : "레오" }; // 정의 속성에 액세스 Object.defineProperty (사람, "스타일" , { 구성 : false로 , : GET 기능을 () { 반환 "스타일"+ 은이 .name을 ; } SET : 함수 (값) { 이 본 .name을 = 값; } }) CONSOLE.LOG (person.style) // 트리거 속성 GET 메소드 접근 // 출력 스타일 : 레오 person.style = 'mystyle '; // SET는 액세스 방법의 속성 // 출력 스타일을 트리거 : mystyle 을 console.log (person.style를); //데이터 속성 수정 (사람, "스타일"Object.defineProperty를 , { 값을 : '' // 액세스 속성과 정의 구성 : 거짓 즉, 자연적으로 주어진 그들은 데이터 속성으로 정의하고, 강제로 정의 할 수없는 속성 } ); </ script>
<! DOCTYPE HTML> <HTML LANG = "EN"> <head> <메타 문자 집합 = "UTF-. 8"> <메타 이름 = "뷰포트" 내용 = "너비 = 폭 장치, 사용자 확장 초기화 하, NO = 스케일 = 1.0, 최대 스케일 = 1.0, 최소 스케일 = 1.0 "> <META HTTP-EQUIV ="X - UA에 호환 "내용 ="IE = 엣지 "> <제목> 문서 </ 제목> </ head> <body> <script> // 객체의 복수의 속성을 정의 할 가능성이 매우 크기 때문이다. ECMAScript5 또한 Object.defineProperties () 메소드를 정의. // 이 시간, 우리는 데이터 액세스 속성과 방법을 특성있는 var에 예약 = {}; Object.defineProperties (도서, { __year : 2004 , }, 에디션 : { 쓰기 : 사실 , 값 : 1 , }, 올해는 { 얻을 : 함수 () { 반환 이 .__ 년; } 설정 : 함수 (NEWVALUE) { 경우 (NEWVALUE> 2,004 ) { 이 ._year = NEWVALUE; 이 .edition + = NEWVALUE - 2004 ; } } } }) // Object.getOwnPropertyDescriptor ECMAScript5 지정된 속성 기술자 달성 할 수있다 () 메소드를 사용 var에 설명 = Object.getOwnPropertyDescriptor (도서, '__ 년' ) 을 console.log (기술자); // {값 : 2004, 쓰기 가능 : 사실 Enumerable에서에 : 구성, false로} false로 을 console.log (Object.getOwnPropertyDescriptor (창, '년')); // {GET : ƒ, SET : ƒ, Enumerable에서 : 거짓 구성에 : false로} // 기억 살 : ECMAScript를, 대물 DOM 오브젝트 및 BOM 포함하는 임의의 개체 Object.getOwnPropertyDescriptor () 메소드를 사용할 수있다 </ script> </ body> </ HTML>