JS 고도 학습 - 제6 장 (1) --- 인식 대상
대상
1. 속성 유형
대상 은 생 성 할 때 일부 특징 값 을 가지 고 있 습 니 다 [es5 에서 속성 으로 이러한 특성 을 설명 합 니 다] [정의 행위]
속성 은 두 가지 속성 으로 나 뉘 는데 서로 다른 속성 은 서로 다른 특징 을 가지 고 있다
, 、
,
--
: 일반적으로 우리 가 직접 정의 하 는 할당 값 은 모두 데이터 속성 데이터 속성 으로 그 행 위 를 묘사 하 는 네 가지 특징 이 있 습 니 다. 삭제 할 수 있 고 for - in 은 옮 겨 다 닐 수 있 으 며 수정 할 수 있 습 니 다. 데이터 값 은 기본 값 입 니 다. [[
], [
], [Configurable
] 기본 값 은 Enumerable
입 니 다.[[
Writable
] 기본 값 true
Value
방법 을 호출 하여 새로운 속성 을 만 들 때 [설명자 대상] 을 지정 하지 않 으 면 undefined
, Object.defineProperty()
, configurable
특성의 기본 값 은 enumerable
입 니 다.
//
var a = {'b':'c'}
a.b = 20;
//
//
// Math.PI
Math.PI = 10
//
var obj = {};
// ,
Object.defineProperty(obj, 'name', {
writable: false, //
value: ' '
})
console.log(obj.name); //
obj.name = ' ';
console.log(obj.name); // , writable false , 。
var person = {
name: ' ',
age: 24
}
delete person.name;
console.log(person); // {age: 24}
Object.defineProperty(person, 'age', {
configurable: false
})
delete person.age;
console.log(person);// {age: 24} configurable false , delete 。
writable
: getter setter 함수 한 쌍 (모두 false
의) 을 포함 합 니 다.사용자 가 할당 하거나 값 을 추출 할 때 미리 설 정 된 함 수 를 거 쳐 내부 속성의 특수 효 과 를 실현 하도록 합 니 다.마찬가지 로 네 가지 특징 을 가지 고 있다.삭제 가능, 옮 겨 다 니 기 가능, get 시 호출 된 함수, set 시 호출 된 함수
var book = {
_year : 2004,//_year ,
edition : 1
};
// year
Object.defineProperty(book,"year",{
get : function () {
return this._year;
},
set : function (newValue) {
if (newValue > 2004) {
this._year = newValue;
this.edition += newValue - 2004;
}
}
});
book.year get set
// vue ,
2. 여러 속성 정의
은 설명자 하 나 를 통 해 여러 속성 을 정의 할 수 있 습 니 다.//
Object.defineProperty(book,{
"year":{
get : function () {
return this._year;
},
set : function (newValue) {
if (newValue > 2004) {
this._year = newValue;
this.edition += newValue - 2004;
}
},
"name":{
value:10
}
});
3. 속성의 특성 읽 기
학습 정리
JS 고도 학습 - 제6 장 (一) 인식 대상 JS 고도 학습 - 제6 장 (二) 창설 대상 JS 고도 학습 - 제6 장 (三) 대상 계승
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.