Object.defineProperty() 학습 레코드

1869 단어 JSObject

정의:


Object.definePropety () 방법은 대상에 새로운 속성을 직접 정의하거나, 대상의 기존 속성을 수정하고 그 대상을 되돌려줍니다.
이 방법은 대상의 속성을 정확하게 추가하거나 수정할 수 있습니다.값 부여 작업을 통해 추가된 일반 속성은 열거할 수 있으며, 속성 열거 기간에 (for... in 또는 Object.keys 방법) 나타날 수 있으며, 이러한 속성의 값은 변경할 수도 있고 삭제할 수도 있습니다.이 방법은 기본 추가 옵션 (또는 설정) 을 수정할 수 있습니다.기본적으로 Object.defineProperty()로 추가된 속성 값은 수정할 수 없습니다.

사용 방법:


Object.definePropety(obj,prop,descriptor)
obj:수정할 객체
prop: 대상 속성;String
descriptor: 속성 설명자를 정의하거나 수정합니다.Object
속성 설명자는 주로 데이터 설명자와 액세스 설명자로 나뉜다.
데이터 설명자와 액세스 설명자입니다.데이터 설명자는 값이 있는 속성입니다. 이 값은 쓸 수 있을 수도 있고 쓸 수 없을 수도 있습니다.액세스 설명자는 Getter-setter 함수에 의해 설명된 속성입니다.묘사부호는 반드시 이 두 가지 형식 중의 하나여야 한다.동시에 둘 수는 없다.
데이터 설명자가 가질 수 있는 속성:
 
데이터 설명자가 있는지 여부
액세스 설명자가 있는지 여부
 
definePropety로 속성을 정의할 때 기본값
configurable
yes
yes
속성 이 바뀔 수 있습니까
false
enumberable
yes
yes
속성 매거 가능
false
writable
yes
no
value 에너지 = 직접 할당 가능
false
value
yes
no
객체 등록 정보 값
undefine
get
no
yes
속성에 Getter를 제공하는 방법이 속성에 접근할 때 이 방법은 실행됩니다. 방법이 실행될 때 파라미터가 들어오지 않지만 undefined 대상이 들어옵니다.
undefine
set
no
yes
속성에 setter를 제공하는 방법속성 값이 수정되면 이 방법을 실행합니다.이 방법은 유일한 매개 변수, 즉 이 속성의 새로운 매개 변수 값을 받아들일 것이다
undefine
설명자에value, writable, get, set의 임의의 키워드가 없으면 데이터 설명자로 간주됩니다.설명자에 (value 또는 writable) 키워드와 (get 또는 set) 키워드가 동시에 있으면 이상이 발생합니다.
var a ={}                                       
a.b = 2 
// 
Object.defineProperty(a,'b',{
   configurable:true,
   enumerable:true,
   writable:true,
   value:2

})
Object.defineProperty(a, "b", { value : 2 });
//   :
Object.defineProperty(a, "b", {
  value : 2,
  writable : false,
  configurable : false,
  enumerable : false
});

좋은 웹페이지 즐겨찾기