JS 고도 학습 - 제6 장 (1) --- 인식 대상

2796 단어
인식 대상
대상
1. 속성 유형
대상 은 생 성 할 때 일부 특징 값 을 가지 고 있 습 니 다 [es5 에서 속성 으로 이러한 특성 을 설명 합 니 다] [정의 행위]
속성 은 두 가지 속성 으로 나 뉘 는데 서로 다른 속성 은 서로 다른 특징 을 가지 고 있다 , 、 , -- : 일반적으로 우리 가 직접 정의 하 는 할당 값 은 모두 데이터 속성 데이터 속성 으로 그 행 위 를 묘사 하 는 네 가지 특징 이 있 습 니 다. 삭제 할 수 있 고 for - in 은 옮 겨 다 닐 수 있 으 며 수정 할 수 있 습 니 다. 데이터 값 은 기본 값 입 니 다. [[ ], [ ], [Configurable] 기본 값 은 Enumerable 입 니 다.
[[Writable] 기본 값 trueValue 방법 을 호출 하여 새로운 속성 을 만 들 때 [설명자 대상] 을 지정 하지 않 으 면 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 장 (三) 대상 계승

좋은 웹페이지 즐겨찾기