Const 확장

4310 단어 es6
1. Object.defineProperty() 함수 및 Object.hasOwnProperty() 함수
  • Object.defineProperty() 함수
  • (1) 개념: 객체에 속성을 추가하거나 기존 속성 수정(2) 구문: Object.definedProperty(object, propertyname, descriptor) (3) 매개변수:
  • object: 필요합니다.추가되거나 수정된 속성입니다.
  • propertyname: 필요합니다.속성 이름을 포함하는 문자열
  • descriptor: 속성 설명자입니다.

  • (4) 반환 값: 수정된 객체.(5) 사용법:
  • 객체에 새 속성을 추가합니다.이 작업은 객체에 지정된 속성 이름이 없는 경우 발생합니다.
  • 기존 속성 피쳐를 수정합니다.이 작업은 객체에 지정된 속성 이름이 있을 때 발생합니다.

  • (6) 예:
  • 새 속성 코드를 다음과 같이 설정합니다.
  •        var obj={name:'John'};
           // 
           Object.defineProperty(obj,'newDateProperty',{
               value:101,
           });
           console.log(obj);
    

    결과는 다음과 같습니다.
  • 새 속성을 설정하고 새 속성을 수정하는 값 코드는 다음과 같다:
  •        var obj={name:'John'};
           // 
           Object.defineProperty(obj,'newDateProperty',{
               value:101,
               writable:true
           });
           // 
           obj.newDateProperty=111;
           console.log('property value:'+obj.newDateProperty);
    

    결과: writable 속성이true로 설정되어야만 새 속성의 값을 수정할 수 있습니다.2.Object.hasOwnProperty () 함수 (1) 개념: 원형 체인의 속성인지 확인하고false를 되돌려줍니다. 그렇지 않으면true (즉 사용자가 정의한 속성) 를 되돌려줍니다.(2) 구문: object.hasOwnProperty(propertyName)(3) 매개변수:propertyName:String 유형, 지정된 속성 이름.(4) 예:
  • 사용자 정의 속성과 방법 코드를 다음과 같이 검출할 수 있습니까?
  • // 
    const person={
        name:' ',
        say:function(){
            console.log(' ')
        }
    }
    // name 
    console.log("name:"+person.hasOwnProperty("name"));
    // say 
    console.log("say:"+person.hasOwnProperty("say"));
    

    결과: 사용자 정의 존재하는 속성과 방법을 검출할 수 있습니다
  • 원형 체인에 정의된 속성과 방법을 검출할 수 있는지 여부
  • 코드는 다음과 같습니다.
    // 
    const person={
        name:' ',
        say:function(){
            console.log(' ')
        }
    }
    // 
    person.__proto__.age=20;
    // 
    person.prototype={
        run:function(){
            console.log(' ');
        }
    }
    // name 
    console.log("name:"+person.hasOwnProperty("name"));
    // say 
    console.log("say:"+person.hasOwnProperty("say"));
    // age 
    console.log("age:"+person.hasOwnProperty("age"));
    // run 
    console.log("run:"+person.hasOwnProperty("run"));
    

    결과: 사용자 정의 속성과 방법을 스스로 검출할 수 있고, 원형 체인의 속성과 방법을 검출할 수 없습니다.
    2. 대상의 밀봉, 동결 1.Object.seal () 밀봉 대상 (1) 개념: 한 대상을 밀봉하고 밀봉된 대상을 되돌려줍니다.밀봉 대상은 새로운 속성을 추가할 수 없고 기존 속성을 삭제할 수 없으며 기존 속성의 매거성, 설정 가능성, 쓰기 가능성을 수정할 수 없지만 기존 속성 대상의 값을 수정할 수 있는 것을 말한다.(2) 예:
  • 새 속성을 추가하여 기존 속성의 값을 수정하고 기존 속성을 삭제합니다.

  • 코드는 다음과 같습니다.
    onst obj={
        name:'John',
        sex:'Lady'
    }
    // 
    obj.age=30;
    // 
    obj.name="Rose";
    // 
    delete obj.sex;
    // obj 
    console.log(obj);
    

    결과: 새로운 속성을 추가하여 기존 속성의 값을 수정하고 기존 속성을 삭제할 수 있습니다.
  • 대상을 밀봉하고 새로운 속성을 추가
  • 코드는 다음과 같습니다.
    const obj={ name:'John'}
    // 
    Object.seal(obj);
    // 
    obj.age=30;
    console.log("obj.age:"+obj.age);
    

    결과: 대상을 밀봉하면 새로운 속성을 추가할 수 없습니다.
  • 대상을 밀봉하고 기존 속성의 값을 수정
  • 코드는 다음과 같습니다.
    const obj={ name:'John'}
    // 
    Object.seal(obj);
    // 
    obj.name='Bckus';
    console.log(obj.name);
    

    결과: 대상을 밀봉한 후 기존 속성의 값을 수정할 수 있습니다.
  • 대상을 밀봉하고 기존 속성을 삭제
  • 코드는 다음과 같습니다.
    const obj={ name:'John'};
    // 
    Object.seal(obj);
    // 
    delete obj.name;
    // Obj 
    console.log(obj);
    

    결과: 대상을 밀봉한 후 기존 속성을 삭제할 수 없습니다.
  • 대상을 밀봉하고 기존 속성의 매거성, 설정 가능성, 쓰기 가능성
  • 을 수정한다.
    코드는 다음과 같습니다.
    const obj={ name:'John'};
    // 
    Object.seal(obj);
    // 
    Object.defineProperty(obj,'name',{
        configurable:true,
        writable:true,
        enumerable:true
    })
    

    결과: 브라우저가 오류를 보고했습니다. 대상을 밀봉한 후에 기존 속성의 매거성, 설정 가능성, 쓰기 가능성을 수정할 수 없습니다.2.Object.freeze () 동결 대상 (1) 개념: 이 방법은 Object보다 낫다.동결 대상은 새로운 속성을 추가할 수 없고 기존 속성을 수정할 수 없는 값, 기존 속성을 삭제할 수 없는 것, 기존 속성을 수정할 수 없는 매거성, 설정 가능, 쓰기 가능한 대상을 말한다.이 대상은 영원히 바꿀 수 없다는 얘기다.(2) 예: 테스트와object만 합니다.seal () 의 다른 점은 기존 속성의 값을 수정할 수 없다는 것입니다.
  • 대상을 동결하고 기존 속성을 수정하는 값 코드는 다음과 같다.
  • var obj={name:'John'}
    // 
    Object.freeze(obj)
    // 
    obj.name='Backus';
    console.log('obj.name:'+obj.name);
    

    결과: 객체를 동결한 후에는 기존 속성의 값을 수정할 수 없습니다.

    좋은 웹페이지 즐겨찾기