ES5의 객체의 속성은 '데이터 속성'및 '액세서 속성'으로 나눌 수 있습니다.
데이터 속성은 일반적으로 데이터 값을 저장하는 데 사용됩니다. 액세서 속성은 SET/GET 작업에 해당하며 데이터 값을 직접 저장할 수 없습니다.
데이터 속성 특성 : 값, 쓰기 가능, 열거 가능, 구성 가능.
설명 : configurable : true/false, 삭제를 통해 속성을 삭제할 수 있는지, 속성의 특성을 수정할 수 있는지 여부, 속성을 액세서 속성으로 수정할 수 있는지, 기본값;
열거 가능 : true/false, for in loop, default false를 통해 반환 할 수 있는지 여부;
쓰기 가능 : true/false, 속성의 값을 수정할 수 있는지, 기본값은 false입니다.
값 : 정의되지 않은, 부동산 값을 설정하고 기본값을 정의하지 않았습니다.
액세서 속성 : 설정, get, 열거 가능, 구성 가능.
설명 : configurable : true/false, 삭제를 통해 속성을 삭제할 수 있는지, 속성의 특성을 수정할 수 있는지 여부, 속성을 액세서 속성으로 수정할 수 있는지, 기본값;
열거 가능 : true/false, for in loop, default false를 통해 반환 할 수 있는지 여부;
세트 : 속성 값을 읽을 때 호출 된 함수, 기능;
get : 속성 값을 수정할 때 호출 된 함수, 기능.
Object.DefineProperty () 또는 Object.DefineProperties () 메소드를 사용하여 객체에 특성을 추가하거나 기존 속성의 속성을 수정합니다.
Object.DefineProperty (Object, PropertyName, Descriptor) :
매개 변수 설명 : 개체 : 속성을 추가하거나 수정 해야하는 객체;
PropertyName : 속성의 이름, 문자열 형식;
설명 자 : 속성 설명, 데이터 속성 또는 액세서 속성의 속성 설정.
예제 분석 :
데이터 속성 :
var emp = {이름 : 'Tom'}; Object.defineProperty (emp, 'name', {writable : writable}); emp.name = 'jery'; console.log (emp.name); // writable이 fallybject.defineProperty로 설정 되었기 때문에 tom (emp.name.log); 값은 22emp.age = 25; console.log (emp.age); // output 25, writeable은 truedelete emp.age; console.log (emp.age); // output 25로 설정됩니다. 구성 가능은 false로 설정되어 있습니다.이 속성은 삭제할 수 없습니다.액세서 특성 :
var emp = {_ name : 'tom', _ age : 20}; object.defineProperty (emp, 'name', {get : get : get : return this._name;}}); console.log (emp.name); // get method.name에 의해 _name의 값을 retuck '; 정해진 메소드, _name의 값은 개체를 수정할 수 없습니다 .defineProperty (emp, 'age', {configurable : true : true : function () {return this._age;} set : function (age._age = age;}}); emp.age = 25; console.log (emp.age) // output 25, eMb. emp.age는 get method delete emp.age; console.log (emp.age); // untubefined, configurable is true를 사용하여 _age를 읽어야합니다. 삭제 방법을 사용하여 emp.age 속성을 삭제할 수 있습니다.참고 : 액세서 속성은이를 보호하는 데 좋은 역할을 할 수 있습니다. get 메소드 만 있으면 읽기 전용이며 쓸 수 없습니다. 반대로 세트 만 있으면 쓸 수 있지만 읽을 수는 없습니다.
위는 편집자가 제공하는 JavaScript 데이터 속성 및 액세서 속성에 대한 간단한 토론입니다. 모두가 wulin.com을 더 지원하기를 바랍니다