ECMAScript 객체에는 데이터 속성과 접근자 속성이라는 두 가지 속성이 있습니다. 다음으로 두 속성을 각각 분석하겠습니다.
1. 데이터 속성
데이터 속성에는 데이터 값의 위치가 포함됩니다. 이 위치에서는 값을 읽고 쓸 수 있습니다. 데이터 속성에는 해당 동작을 설명하는 4가지 속성이 있습니다.
[ [ Configurable ] ] 삭제를 통해 속성을 삭제하여 속성을 재정의할 수 있는지, 속성의 특성을 수정할 수 있는지, 접근 속성으로 속성을 수정할 수 있는지를 나타냅니다. 기본값은 true
[ [ Enumerable] ] for-in 루프를 통해 속성을 반환할 수 있는지 여부를 나타냅니다. 기본값은 속성 값을 수정할 수 있는지 여부를 나타내는 true
[ [ Writable ] ]입니다. 기본값은 true
[ [ 값 ] ] 이 속성의 속성 값을 포함합니다. 속성을 읽을 때는 이 위치에서 읽고, 속성을 쓸 때는 이 위치에 새 값을 저장합니다. 기본값은 정의되지 않음
예:
var p = {}; Object.defineProperty(p, "name", { writable: false, value: 'nihao' })
2. 접근자 속성
접근자 속성에는 접근자 속성을 읽을 때 getter 및 setter 함수 쌍이 포함되어 있습니다(단, 이 두 함수는 필수는 아닙니다). 호출되며 이 함수는 유효한 값을 반환하는 역할을 합니다. 접근자 속성을 작성할 때 setter 함수가 호출되고 새 값이 전달됩니다. 이 함수는 데이터 처리 방법을 결정합니다. [ [ Configurable ] ]은 속성을 삭제하여 속성을 재정의할 수 있는지 여부를 나타냅니다. 삭제하고 속성의 특성을 수정할 수 있는지 여부를 확인합니다. 아니면 액세스 속성으로 변경할 수 있나요? 기본값은 true
[ [ Enumerable] ] for-in 루프를 통해 속성을 반환할 수 있는지 여부를 나타냅니다. 기본값은 true
[ [ Get ] ] 속성을 읽을 때 호출되는 함수, 기본값은 정의되지 않음
[ [ Set ] ] 속성을 쓸 때 호출되는 함수, 기본값은 정의되지 않음
예:
var p = {get: 0}; Object.defineProperty(p, "name", { get: function (){ console.log('get'); return this.get; }, set: function (newVal) { console.log('set'); this.get = newVal; } })
Object.getOwnPropertyDescriptor(속성이 위치한 객체, 속성 이름)
반환 값은 configurable, enumerable, get 및 set의 네 가지 속성에 액세스하는 객체입니다.
숫자 속성인 경우 반환됩니다. 객체 속성은 구성 및 열거 가능, 쓰기 가능, 값 4개 속성입니다.
설명: Object.defineProperties() 함수는 여러 속성을 정의할 수 있습니다.
예:
var p = {get: 0}; Object.defineProperties(p, {"name", { get: function (){ console.log('get'); return this.get; }, set: function (newVal) { console.log('set'); this.get = newVal; } }, "age": { writable: true, value: 11 } })
위 내용은 ECMAScript에서 객체의 두 가지 속성에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!